При использовании Spring Data JpaRepository, если метод findOneById(...) аннотирован с помощью @Lock(LockModeType.PESSIMISTIC_WRITE) (или любого другого), какова область действия блокировки, т.е. е. как долго он активен? Только пока выполняется запрос выбора или пока транзакция не завершится?
P.S .: Что делать, если вызывающий метод аннотирован @Transactional?

Из спецификации JPA 2.1 (выделено мной):
Pessimistic locking guarantees that once a transaction has obtained a pessimistic lock on an entity instance:
- no other transaction (whether a transaction of an application using the Java Persistence API or any other transaction using the underlying resource) may successfully modify or delete that instance until the transaction holding the lock has ended.
Поскольку это механизм, используемый Spring Data JPA, блокировка сохраняется до конца транзакции.
В этом есть смысл. Я думаю, что меня смутил JavaDoc для
@Lock, который только что говорил о «запросе».