diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/loading/context/impl/HibernateOrmLoadingContext.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/loading/context/impl/HibernateOrmLoadingContext.java index 2bf55a2b4bf..72dcdd33c1e 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/loading/context/impl/HibernateOrmLoadingContext.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/loading/context/impl/HibernateOrmLoadingContext.java @@ -10,9 +10,11 @@ import java.util.Set; import org.hibernate.engine.spi.SessionImplementor; +import org.hibernate.search.engine.backend.common.spi.DocumentReferenceConverter; import org.hibernate.search.engine.search.loading.context.spi.LoadingContext; import org.hibernate.search.engine.search.loading.context.spi.LoadingContextBuilder; import org.hibernate.search.engine.search.loading.spi.DefaultProjectionHitMapper; +import org.hibernate.search.engine.search.loading.spi.EntityLoader; import org.hibernate.search.engine.search.loading.spi.ProjectionHitMapper; import org.hibernate.search.mapper.orm.logging.impl.Log; import org.hibernate.search.mapper.orm.search.loading.EntityLoadingCacheLookupStrategy; @@ -30,16 +32,17 @@ public final class HibernateOrmLoadingContext implements LoadingContext projectionHitMapper; - + private final DocumentReferenceConverter referenceHitMapper; + private final EntityLoader entityLoader; private final MutableEntityLoadingOptions loadingOptions; private HibernateOrmLoadingContext(SessionImplementor sessionImplementor, - ProjectionHitMapper projectionHitMapper, + DocumentReferenceConverter referenceHitMapper, + EntityLoader entityLoader, MutableEntityLoadingOptions loadingOptions) { this.sessionImplementor = sessionImplementor; - this.projectionHitMapper = projectionHitMapper; + this.referenceHitMapper = referenceHitMapper; + this.entityLoader = entityLoader; this.loadingOptions = loadingOptions; } @@ -52,7 +55,7 @@ public ProjectionHitMapper getProjectionHitMapper() { throw log.hibernateSessionIsClosed( e ); } - return projectionHitMapper; + return new DefaultProjectionHitMapper<>( referenceHitMapper, entityLoader ); } public SessionImplementor getSessionImplementor() { @@ -96,13 +99,11 @@ public SearchLoadingOptionsStep cacheLookupStrategy(EntityLoadingCacheLookupStra @Override public LoadingContext build() { - ProjectionHitMapper projectionHitMapper = new DefaultProjectionHitMapper<>( - sessionContext.getReferenceHitMapper(), - entityLoaderBuilder.build( loadingOptions ) - ); + DocumentReferenceConverter referenceHitMapper = sessionContext.getReferenceHitMapper(); + EntityLoader entityLoader = entityLoaderBuilder.build( loadingOptions ); return new HibernateOrmLoadingContext<>( sessionContext.getSession(), - projectionHitMapper, + referenceHitMapper, entityLoader, loadingOptions ); }