В последнее время я изучаю транзакции базы данных и одна статьи котировку следующим образомКак это сделать, когда объект с аннотированным полем или свойством @Version, автоматически блокирует оптимистичную блокировку?
JPA обеспечивает автоматическую поддержку ряд версий через @version annotation.When у вас есть объект с @version annotatted поля или свойства, оптимистичная блокировка будет включена автоматически ,
Я понимаю, что стратегии уровня изоляции базы данных поддерживаются с помощью различных замков, как
- Читать незавершенными: реализован эксклюзивными записи замками
- Читайте совершенные: реализовано с использованием разделяемых блокировок чтения и эксклюзивные записями замков.
и т.п. Таким образом, транзакционная изоляция реализуется с помощью различных блокировок, которые, как я полагаю, используют пессимистическую блокировку.
Мой вопрос в том, когда поле объявлено как @Version аннотированное, оно переопределяет базовый уровень изоляции по умолчанию и происходит оптимистическая блокировка?
tharindu_DG в моем случае Я использую базу данных mysql, уровень изоляции по умолчанию которой повторяется. Таким образом, наряду с повторяющимся чтением уровня изоляции, я могу использовать оптимистичную блокировку или пессимистичную блокировку на основе моего требования, правильно? –
'repeatable reads' - это более высокий уровень изоляции, который' read commit', потому что он не только блокирует запись, но и читает, чтобы избежать проблемы с неповторяющимися чтениями. Во всяком случае, я думаю, он совместим с оптимистичной блокировкой. – malaguna