( yoursoft | 2023. 03. 12., v – 17:20 )

Igen, már tapasztaltam. :) Nemrég megkérdeztem máshogy. Erre eléggé mást válaszolt:

Igen, ha egy tranzakcióban futtatja az em.find(ControlTable.class, "PROCESS_CONTROL", LockModeType.PESSIMISTIC_WRITE) metódust, akkor a lock csak a tranzakció végén kerül érvényesítésre, amikor a tranzakció commit-olódik. A lockot addig tartja a JPA, hogy a tranzakció lefutása során ne lehessen más tranzakcióknak hozzáférni az adatokhoz.

Mondjuk még ez is félreérthető volt, így még egyszer rákérdezve már azt a választ adta, hogy amikor kiadjuk a find-ot, akkor direktbe bekérdez a DB-be. Nem használja a cache-t, mert lock is van a metódus hívásban. És attól kezdődően él a lock a DB szinten is a tranzakció végéig.