diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java index d5f558aff3b..e3fee26f2c6 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java @@ -22,6 +22,7 @@ import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.mapping.Property; import org.hibernate.metamodel.MappingMetamodel; +import org.hibernate.metamodel.mapping.EntityMappingType; import org.hibernate.persister.entity.EntityPersister; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.util.common.annotation.impl.SuppressForbiddenApis; @@ -82,8 +83,7 @@ public static EntityPersister toRootEntityType(SessionFactoryImplementor session return metamodel.getEntityDescriptor( rootEntityName ); } - public static EntityPersister toMostSpecificCommonEntitySuperType(MappingMetamodel metamodel, - EntityPersister type1, EntityPersister type2) { + public static EntityPersister toMostSpecificCommonEntitySuperType(EntityPersister type1, EntityPersister type2) { /* * We need to rely on Hibernate ORM's SPIs: this is complex stuff. * For example there may be class hierarchies such as A > B > C @@ -93,9 +93,8 @@ public static EntityPersister toMostSpecificCommonEntitySuperType(MappingMetamod */ EntityPersister superTypeCandidate = type1; while ( superTypeCandidate != null && !isSuperTypeOf( superTypeCandidate, type2 ) ) { - String superSuperTypeEntityName = superTypeCandidate.getEntityMetamodel().getSuperclass(); - superTypeCandidate = superSuperTypeEntityName == null ? null - : metamodel.getEntityDescriptor( superSuperTypeEntityName ).getEntityPersister(); + EntityMappingType superSuperType = superTypeCandidate.getSuperMappingType(); + superTypeCandidate = superSuperType == null ? null : superSuperType.getEntityPersister(); } if ( superTypeCandidate == null ) { throw new AssertionFailure( @@ -119,7 +118,7 @@ public static boolean targetsAllConcreteSubTypes(SessionFactoryImplementor sessi MappingMetamodel metamodel = sessionFactory.getMappingMetamodel(); int concreteSubTypesCount = 0; for ( String subClassEntityName : subClassEntityNames ) { - if ( !metamodel.getEntityDescriptor( subClassEntityName ).getEntityMetamodel().isAbstract() ) { + if ( !metamodel.getEntityDescriptor( subClassEntityName ).isAbstract() ) { ++concreteSubTypesCount; } } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmEntityIdEntityLoadingStrategy.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmEntityIdEntityLoadingStrategy.java index 4d35daf39e9..45b9fc0a503 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmEntityIdEntityLoadingStrategy.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmEntityIdEntityLoadingStrategy.java @@ -12,7 +12,6 @@ import org.hibernate.AssertionFailure; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SessionImplementor; -import org.hibernate.metamodel.MappingMetamodel; import org.hibernate.persister.entity.EntityPersister; import org.hibernate.search.mapper.orm.common.impl.HibernateOrmUtils; import org.hibernate.search.mapper.orm.search.loading.EntityLoadingCacheLookupStrategy; @@ -149,7 +148,6 @@ private PojoSelectionEntityLoader doCreate(EntityPersister entityPersister, private static EntityPersister toMostSpecificCommonEntitySuperType(SessionImplementor session, Iterable> targetEntityTypeContexts) { - MappingMetamodel metamodel = session.getSessionFactory().getMappingMetamodel(); EntityPersister result = null; for ( LoadingTypeContext targetTypeContext : targetEntityTypeContexts ) { EntityPersister type = targetTypeContext.entityPersister(); @@ -157,7 +155,7 @@ private static EntityPersister toMostSpecificCommonEntitySuperType(SessionImplem result = type; } else { - result = HibernateOrmUtils.toMostSpecificCommonEntitySuperType( metamodel, result, type ); + result = HibernateOrmUtils.toMostSpecificCommonEntitySuperType( result, type ); } } return result;