Skip to content

Commit d723ff0

Browse files
committed
HHH-18872 Resolve concrete entity name when initializing lazy to-ones
1 parent 3cfa7c7 commit d723ff0

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

hibernate-core/src/main/java/org/hibernate/type/EntityType.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,8 +767,13 @@ protected final Object resolveIdentifier(Object id, SharedSessionContractImpleme
767767
getAssociatedEntityPersister( session.getFactory() )
768768
.isInstrumented();
769769

770-
final Object proxyOrEntity =
771-
session.internalLoad( getAssociatedEntityName(), id, isEager( overridingEager ), isNullable() );
770+
final boolean isEager = isEager( overridingEager );
771+
// If the association is lazy, retrieve the concrete type if required
772+
final String entityName = isEager ? getAssociatedEntityName()
773+
: getAssociatedEntityPersister( session.getFactory() ).resolveConcreteProxyTypeForId( id, session )
774+
.getEntityName();
775+
776+
final Object proxyOrEntity = session.internalLoad( entityName, id, isEager, isNullable() );
772777

773778
final LazyInitializer lazyInitializer = extractLazyInitializer( proxyOrEntity );
774779
if ( lazyInitializer != null ) {

0 commit comments

Comments
 (0)