Блокировка JPA: грязное чтение и неповторяющееся чтение предотвращаются уровнем изоляции транзакции или оптимистической блокировкой c? - PullRequest
0 голосов
/ 04 мая 2020

https://docs.oracle.com/javaee/7/api/javax/persistence/LockModeType.html

If transaction T1 calls for a lock of type LockModeType.OPTIMISTIC on a
versioned object, the entity manager must ensure that neither of the
following phenomena can occur:

P1 (Dirty read): Transaction T1 modifies a row. Another transaction T2 then
reads that row and obtains the modified value, before T1 has committed or 
rolled back. Transaction T2 eventually commits successfully; it does not 
matter whether T1 commits or rolls back and whether it does so before or 
after T2 commits.

P2 (Non-repeatable read): Transaction T1 reads a row. Another transaction T2
then modifies or deletes that row, before T1 has committed. Both transactions
eventually commit successfully.

Lock modes must always prevent the phenomena P1 and P2.

Грязное чтение и неповторяющееся чтение: предотвращается уровнем изоляции транзакций или оптимизмом c блокировка?

Как может ли оптимистическая блокировка c предотвратить P1 и P2 без помощи блокировки базы данных?

...