From 1624a95d77fd8af433ab1531e4d3828fcaf33f22 Mon Sep 17 00:00:00 2001 From: Scott Marlow Date: Tue, 2 Dec 2025 13:59:37 -0500 Subject: [PATCH] HHH-19863 Calling EntityManager.lock() without an Active Transaction should throw jakarta.persistence.TransactionRequiredException Signed-off-by: Scott Marlow --- .../src/main/java/org/hibernate/internal/SessionImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java index a37ec581e42c..72d39bd07516 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java @@ -624,13 +624,13 @@ public void lock(Object object, LockMode lockMode, LockOption... lockOptions) { private void fireLock(final LockEvent lockEvent) { checkOpen(); - checkEntityManaged( lockEvent.getEntityName(), lockEvent.getObject() ); try { pulseTransactionCoordinator(); checkTransactionNeededForLock( lockEvent.getLockMode() ); eventListenerGroups.eventListenerGroup_LOCK .fireEventOnEachListener( lockEvent, LockEventListener::onLock ); + checkEntityManaged( lockEvent.getEntityName(), lockEvent.getObject() ); } catch ( RuntimeException e ) { convertIfJpaBootstrap( e, lockEvent.getLockOptions() );