When creating and directly locking an entity, hibernate throws a org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) exception. I guess, this is because the row does not exist yet in the table, so there is nothing to lock. However, there is also no way for another transaction to access the new entity, so it is already “locked” in a way. Thus, from my perspective, locking a freshly persisted entity should do nothing. I have made a test to reproduce this behavior: https://github.com/mensinda/quarkus-stuff/tree/createAndLock (on the createAndLock branch). Additionally, the createAndLockeclipseLink branch contains the same test with eclipselink. Interestingly, locking freshly created entities works here, with the exception of find(..., LockModeType.PESSIMISTIC_WRITE. |