Эти два не имеют такое же поведение. С оптимизированным параллелизмом в спящем режиме это нормально, если строка, которая должна быть написана, была изменена тем временем и изменена обратно. Например, +1
, за которым следует -1
. Также хорошо, что столбцы были изменены, поэтому спящий режим не проверяется.
Изоляция моментальных снимков проверяет все столбцы и не сравнивает данные. Любая запись, даже нулевая запись, такая как x = x
считает.
Изоляция моментальных снимков также гарантирует моментальный снимок момента времени для чтения. Вы не сказали, какой уровень изоляции вы намерены использовать для (1). Я предполагаю, что это не SNAPSHOT. По этой причине (2), вероятно, предложит вам гарантии того, что спящий режим не может предлагать самостоятельно.
Hibernate оптимистичный параллелизм подходит для отдельных объектов. Изоляция снимка не может этого сделать, потому что для транзакции требуется, чтобы все операции выполнялись.
Обратите внимание, что оба решения не являются сериализуемыми, поскольку они проверяют запись, но не читают.
Я добавил ответ. Если есть конкретные аспекты, вы хотели бы получить дополнительную информацию о дате мне знать. – usr