Какой объем блокировки в Spring Data JPA / Hibernate? - PullRequest
0 голосов
/ 13 сентября 2018

Если при использовании Spring Data JpaRepository, если метод findOneById(...) помечен @Lock(LockModeType.PESSIMISTIC_WRITE) (или любым другим), какова область действия блокировки, т.е. е. как долго это активно? Только во время выполнения запроса select или до завершения транзакции?

P.S .: Что если вызывающий метод помечается @Transactional?

1 Ответ

0 голосов
/ 14 сентября 2018

Из спецификации JPA 2.1 (выделено):

Пессимистическая блокировка гарантирует, что как только транзакция получит пессимистическую блокировку для экземпляра объекта:

  • нет другоготранзакция (независимо от того, является ли транзакция приложения, использующего Java Persistence API, или любая другая транзакция, использующая базовый ресурс) может успешно изменить или удалить этот экземпляр до тех пор, пока транзакция, содержащая блокировку, не завершится .

Поскольку это механизм, используемый Spring Data JPA, блокировка удерживается до конца транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...