类 AbstractLoadPlanBuildingAssociationVisitationStrategy
- java.lang.Object
-
- org.hibernate.loader.plan.build.internal.AbstractLoadPlanBuildingAssociationVisitationStrategy
-
- 所有已实现的接口:
LoadPlanBuildingAssociationVisitationStrategy,LoadPlanBuildingContext,AssociationVisitationStrategy
- 直接已知子类:
AbstractEntityGraphVisitationStrategy,FetchStyleLoadPlanBuildingAssociationVisitationStrategy
public abstract class AbstractLoadPlanBuildingAssociationVisitationStrategy extends Object implements LoadPlanBuildingAssociationVisitationStrategy, LoadPlanBuildingContext
A LoadPlanBuildingAssociationVisitationStrategy is a strategy for building a LoadPlan. LoadPlanBuildingAssociationVisitationStrategy is also a AssociationVisitationStrategy, which is used in conjunction with visiting associations via walking metamodel definitions. So this strategy defines a AssociationVisitationStrategy that walks the metamodel-defined associations after which is can then build a LoadPlan based on the visited associations.determineFetchStrategy(org.hibernate.persister.walking.spi.AssociationAttributeDefinition)is the main decision point that determines if an association is walked.- 作者:
- Steve Ebersole
- 另请参阅:
LoadPlanBuildingAssociationVisitationStrategy,AssociationVisitationStrategy
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 static classAbstractLoadPlanBuildingAssociationVisitationStrategy.PropertyPathStackMaintains stack information for the property paths we are processing for logging purposes.
-
字段概要
字段 修饰符和类型 字段 说明 protected PropertyPathcurrentPropertyPath
-
构造器概要
构造器 限定符 构造器 说明 protectedAbstractLoadPlanBuildingAssociationVisitationStrategy(SessionFactoryImplementor sessionFactory)Constructs an AbstractLoadPlanBuildingAssociationVisitationStrategy.
-
方法概要
所有方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 protected abstract voidaddRootReturn(Return rootReturn)voidassociationKeyRegistered(AssociationKey associationKey)protected intcurrentDepth()protected ExpandingFetchSourcecurrentSource()protected abstract FetchStrategydetermineFetchStrategy(AssociationAttributeDefinition attributeDefinition)voidfinish()Notification we are finished visitation.voidfinishingAttribute(AttributeDefinition attributeDefinition)Notification that we are finishing walking an attribute.voidfinishingCollection(CollectionDefinition collectionDefinition)Notification that we are finishing walking a collectionvoidfinishingCollectionElements(CollectionElementDefinition elementDefinition)Notification that we are finishing walking the elements of a collection (List/Map).voidfinishingCollectionIndex(CollectionIndexDefinition indexDefinition)Notification that we are finishing walking the index of a collection (List/Map).voidfinishingComposite(CompositionDefinition compositionDefinition)Notification that we are done walking a composite.voidfinishingEntity(EntityDefinition entityDefinition)Notification we are finishing walking an entity.voidfinishingEntityIdentifier(EntityIdentifierDefinition entityIdentifierDefinition)Notification we are finishing walking an entity.voidfoundAny(AnyMappingDefinition anyDefinition)voidfoundCircularAssociation(AssociationAttributeDefinition attributeDefinition)ExpandingQuerySpacesgetQuerySpaces()SessionFactoryImplementorgetSessionFactory()Access to the SessionFactoryprotected booleanhandleAssociationAttribute(AssociationAttributeDefinition attributeDefinition)protected booleanhandleCompositeAttribute(AttributeDefinition attributeDefinition)booleanisDuplicateAssociationKey(AssociationKey associationKey)protected booleanisTooManyCollections()FetchSourceregisteredFetchSource(AssociationKey associationKey)protected SessionFactoryImplementorsessionFactory()Gets the session factory.voidstart()Notification we are preparing to start visitation.booleanstartingAttribute(AttributeDefinition attributeDefinition)Notification that we are preparing to walk an attribute.voidstartingCollection(CollectionDefinition collectionDefinition)Notification that we are starting to walk a collectionvoidstartingCollectionElements(CollectionElementDefinition elementDefinition)Notification that we are starting to look at the element definition for the collection.voidstartingCollectionIndex(CollectionIndexDefinition indexDefinition)Notification that we are starting to walk the index of a collection (List/Map).voidstartingComposite(CompositionDefinition compositionDefinition)Notification that we are preparing to walk a composite.voidstartingEntity(EntityDefinition entityDefinition)Notification we are starting to walk an entity.voidstartingEntityIdentifier(EntityIdentifierDefinition entityIdentifierDefinition)Notification we are starting to walk the identifier of an entity.protected booleansupportsRootCollectionReturns()protected booleansupportsRootEntityReturns()-
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
从接口继承的方法 org.hibernate.loader.plan.build.spi.LoadPlanBuildingAssociationVisitationStrategy
buildLoadPlan
-
-
-
-
字段详细资料
-
currentPropertyPath
protected PropertyPath currentPropertyPath
-
-
构造器详细资料
-
AbstractLoadPlanBuildingAssociationVisitationStrategy
protected AbstractLoadPlanBuildingAssociationVisitationStrategy(SessionFactoryImplementor sessionFactory)
Constructs an AbstractLoadPlanBuildingAssociationVisitationStrategy.- 参数:
sessionFactory- The session factory.
-
-
方法详细资料
-
sessionFactory
protected SessionFactoryImplementor sessionFactory()
Gets the session factory.- 返回:
- The session factory.
-
getQuerySpaces
public ExpandingQuerySpaces getQuerySpaces()
- 指定者:
getQuerySpaces在接口中LoadPlanBuildingContext
-
currentSource
protected ExpandingFetchSource currentSource()
-
start
public void start()
从接口复制的说明:AssociationVisitationStrategyNotification we are preparing to start visitation.- 指定者:
start在接口中AssociationVisitationStrategy
-
finish
public void finish()
从接口复制的说明:AssociationVisitationStrategyNotification we are finished visitation.- 指定者:
finish在接口中AssociationVisitationStrategy
-
addRootReturn
protected abstract void addRootReturn(Return rootReturn)
-
supportsRootEntityReturns
protected boolean supportsRootEntityReturns()
-
startingEntity
public void startingEntity(EntityDefinition entityDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification we are starting to walk an entity.- 指定者:
startingEntity在接口中AssociationVisitationStrategy- 参数:
entityDefinition- The entity we are preparing to walk
-
finishingEntity
public void finishingEntity(EntityDefinition entityDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification we are finishing walking an entity.- 指定者:
finishingEntity在接口中AssociationVisitationStrategy- 参数:
entityDefinition- The entity we are finishing walking.
-
startingEntityIdentifier
public void startingEntityIdentifier(EntityIdentifierDefinition entityIdentifierDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification we are starting to walk the identifier of an entity.- 指定者:
startingEntityIdentifier在接口中AssociationVisitationStrategy- 参数:
entityIdentifierDefinition- The identifier we are preparing to walk
-
finishingEntityIdentifier
public void finishingEntityIdentifier(EntityIdentifierDefinition entityIdentifierDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification we are finishing walking an entity.- 指定者:
finishingEntityIdentifier在接口中AssociationVisitationStrategy- 参数:
entityIdentifierDefinition- The identifier we are finishing walking.
-
startingCollection
public void startingCollection(CollectionDefinition collectionDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are starting to walk a collection- 指定者:
startingCollection在接口中AssociationVisitationStrategy- 参数:
collectionDefinition- The collection we are preparing to walk
-
supportsRootCollectionReturns
protected boolean supportsRootCollectionReturns()
-
finishingCollection
public void finishingCollection(CollectionDefinition collectionDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are finishing walking a collection- 指定者:
finishingCollection在接口中AssociationVisitationStrategy- 参数:
collectionDefinition- The collection we are finishing
-
startingCollectionIndex
public void startingCollectionIndex(CollectionIndexDefinition indexDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are starting to walk the index of a collection (List/Map). In the case of a Map, if the indices (the keys) are entities this will be followed up by a call toAssociationVisitationStrategy.startingEntity(org.hibernate.persister.walking.spi.EntityDefinition)- 指定者:
startingCollectionIndex在接口中AssociationVisitationStrategy- 参数:
indexDefinition- The collection index we are preparing to walk.
-
finishingCollectionIndex
public void finishingCollectionIndex(CollectionIndexDefinition indexDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are finishing walking the index of a collection (List/Map).- 指定者:
finishingCollectionIndex在接口中AssociationVisitationStrategy- 参数:
indexDefinition- The collection index we are finishing
-
startingCollectionElements
public void startingCollectionElements(CollectionElementDefinition elementDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are starting to look at the element definition for the collection. If the collection elements are entities this will be followed up by a call toAssociationVisitationStrategy.startingEntity(org.hibernate.persister.walking.spi.EntityDefinition)- 指定者:
startingCollectionElements在接口中AssociationVisitationStrategy- 参数:
elementDefinition- The collection element we are preparing to walk..
-
finishingCollectionElements
public void finishingCollectionElements(CollectionElementDefinition elementDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are finishing walking the elements of a collection (List/Map).- 指定者:
finishingCollectionElements在接口中AssociationVisitationStrategy- 参数:
elementDefinition- The collection element we are finishing
-
startingComposite
public void startingComposite(CompositionDefinition compositionDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are preparing to walk a composite. This is called only for:-
top-level composites for entity attributes. composite entity identifiers do not route through here, see
AssociationVisitationStrategy.startingEntityIdentifier(org.hibernate.persister.walking.spi.EntityIdentifierDefinition)if you need to hook into walking the top-level cid composite. - All forms of nested composite paths
- 指定者:
startingComposite在接口中AssociationVisitationStrategy- 参数:
compositionDefinition- The composite we are preparing to walk.
-
top-level composites for entity attributes. composite entity identifiers do not route through here, see
-
finishingComposite
public void finishingComposite(CompositionDefinition compositionDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are done walking a composite. Called on the back-end of the situations listed onAssociationVisitationStrategy.startingComposite(org.hibernate.persister.walking.spi.CompositionDefinition)- 指定者:
finishingComposite在接口中AssociationVisitationStrategy- 参数:
compositionDefinition- The composite we are finishing
-
startingAttribute
public boolean startingAttribute(AttributeDefinition attributeDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are preparing to walk an attribute. May be followed by calls toAssociationVisitationStrategy.startingEntity(org.hibernate.persister.walking.spi.EntityDefinition)(one-to-one, many-to-one),AssociationVisitationStrategy.startingComposite(org.hibernate.persister.walking.spi.CompositionDefinition), orAssociationVisitationStrategy.startingCollection(org.hibernate.persister.walking.spi.CollectionDefinition).- 指定者:
startingAttribute在接口中AssociationVisitationStrategy- 参数:
attributeDefinition- The attribute we are preparing to walk.- 返回:
trueif the walking should continue;falseif walking should stop.
-
finishingAttribute
public void finishingAttribute(AttributeDefinition attributeDefinition)
从接口复制的说明:AssociationVisitationStrategyNotification that we are finishing walking an attribute.- 指定者:
finishingAttribute在接口中AssociationVisitationStrategy- 参数:
attributeDefinition- The attribute we are done walking
-
isDuplicateAssociationKey
public boolean isDuplicateAssociationKey(AssociationKey associationKey)
-
associationKeyRegistered
public void associationKeyRegistered(AssociationKey associationKey)
-
registeredFetchSource
public FetchSource registeredFetchSource(AssociationKey associationKey)
-
foundCircularAssociation
public void foundCircularAssociation(AssociationAttributeDefinition attributeDefinition)
-
foundAny
public void foundAny(AnyMappingDefinition anyDefinition)
- 指定者:
foundAny在接口中AssociationVisitationStrategy
-
handleCompositeAttribute
protected boolean handleCompositeAttribute(AttributeDefinition attributeDefinition)
-
handleAssociationAttribute
protected boolean handleAssociationAttribute(AssociationAttributeDefinition attributeDefinition)
-
determineFetchStrategy
protected abstract FetchStrategy determineFetchStrategy(AssociationAttributeDefinition attributeDefinition)
-
currentDepth
protected int currentDepth()
-
isTooManyCollections
protected boolean isTooManyCollections()
-
getSessionFactory
public SessionFactoryImplementor getSessionFactory()
从接口复制的说明:LoadPlanBuildingContextAccess to the SessionFactory- 指定者:
getSessionFactory在接口中LoadPlanBuildingContext- 返回:
- The SessionFactory
-
-