diff --git a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java index f1bd96a3c7..f2c0763412 100644 --- a/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/LoaderHelper.java @@ -107,7 +107,12 @@ public class LoaderHelper { entry.forceLocked( object, nextVersion ); } else { - persister.lock( entry.getId(), entry.getVersion(), object, lockOptions, session ); + if ( entry.isExistsInDatabase() ) { + persister.lock( entry.getId(), entry.getVersion(), object, lockOptions, session ); + } + else { + session.forceFlush( entry ); + } } entry.setLockMode(requestedLockMode); }