use of org.hibernate.engine.FetchStyle in project hibernate-orm by hibernate.
the class EntityBasedAssociationAttribute method determineFetchPlan.
@Override
public FetchStrategy determineFetchPlan(LoadQueryInfluencers loadQueryInfluencers, PropertyPath propertyPath) {
final EntityPersister owningPersister = getSource().getEntityPersister();
FetchStyle style = FetchStrategyHelper.determineFetchStyleByProfile(loadQueryInfluencers, owningPersister, propertyPath, attributeNumber());
if (style == null) {
style = FetchStrategyHelper.determineFetchStyleByMetadata(((OuterJoinLoadable) getSource().getEntityPersister()).getFetchMode(attributeNumber()), getType(), sessionFactory());
}
return new FetchStrategy(FetchStrategyHelper.determineFetchTiming(style, getType(), sessionFactory()), style);
}
use of org.hibernate.engine.FetchStyle in project hibernate-orm by hibernate.
the class BatchFetchStrategyHelperTest method testCollectionJoinFetch.
@Test
public void testCollectionJoinFetch() {
final AssociationType associationType = determineAssociationType(AnEntity.class, "colorsJoin");
final org.hibernate.FetchMode fetchMode = determineFetchMode(AnEntity.class, "colorsJoin");
assertSame(org.hibernate.FetchMode.JOIN, fetchMode);
final FetchStyle fetchStyle = FetchStrategyHelper.determineFetchStyleByMetadata(fetchMode, associationType, sessionFactory());
// batch size is ignored with org.hibernate.FetchMode.JOIN
assertSame(FetchStyle.JOIN, fetchStyle);
final FetchTiming fetchTiming = FetchStrategyHelper.determineFetchTiming(fetchStyle, associationType, sessionFactory());
assertSame(FetchTiming.IMMEDIATE, fetchTiming);
}
use of org.hibernate.engine.FetchStyle in project hibernate-orm by hibernate.
the class BatchFetchStrategyHelperTest method testCollectionSelectFetch.
@Test
public void testCollectionSelectFetch() {
final AssociationType associationType = determineAssociationType(AnEntity.class, "colorsSelect");
final org.hibernate.FetchMode fetchMode = determineFetchMode(AnEntity.class, "colorsSelect");
assertSame(org.hibernate.FetchMode.SELECT, fetchMode);
final FetchStyle fetchStyle = FetchStrategyHelper.determineFetchStyleByMetadata(fetchMode, associationType, sessionFactory());
assertSame(FetchStyle.BATCH, fetchStyle);
final FetchTiming fetchTiming = FetchStrategyHelper.determineFetchTiming(fetchStyle, associationType, sessionFactory());
assertSame(FetchTiming.DELAYED, fetchTiming);
}
use of org.hibernate.engine.FetchStyle in project hibernate-orm by hibernate.
the class FetchStrategyHelperTest method testManyToOneSelectFetch.
@Test
public void testManyToOneSelectFetch() {
final AssociationType associationType = determineAssociationType(AnEntity.class, "otherEntitySelect");
final org.hibernate.FetchMode fetchMode = determineFetchMode(AnEntity.class, "otherEntitySelect");
assertSame(org.hibernate.FetchMode.SELECT, fetchMode);
final FetchStyle fetchStyle = FetchStrategyHelper.determineFetchStyleByMetadata(fetchMode, associationType, sessionFactory());
assertSame(FetchStyle.SELECT, fetchStyle);
final FetchTiming fetchTiming = FetchStrategyHelper.determineFetchTiming(fetchStyle, associationType, sessionFactory());
assertSame(FetchTiming.DELAYED, fetchTiming);
}
use of org.hibernate.engine.FetchStyle in project hibernate-orm by hibernate.
the class FetchStrategyHelperTest method testCollectionSubselectFetch.
@Test
public void testCollectionSubselectFetch() {
final AssociationType associationType = determineAssociationType(AnEntity.class, "colorsSubselect");
final org.hibernate.FetchMode fetchMode = determineFetchMode(AnEntity.class, "colorsSubselect");
assertSame(org.hibernate.FetchMode.SELECT, fetchMode);
final FetchStyle fetchStyle = FetchStrategyHelper.determineFetchStyleByMetadata(fetchMode, associationType, sessionFactory());
assertSame(FetchStyle.SUBSELECT, fetchStyle);
final FetchTiming fetchTiming = FetchStrategyHelper.determineFetchTiming(fetchStyle, associationType, sessionFactory());
assertSame(FetchTiming.DELAYED, fetchTiming);
}
Aggregations