Class DiscriminatedEntityInitializer
- All Implemented Interfaces:
EntityInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>,Initializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>,InitializerParent<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classNested classes/interfaces inherited from interface org.hibernate.sql.results.graph.Initializer
Initializer.State -
Field Summary
FieldsFields inherited from class org.hibernate.sql.results.graph.internal.AbstractInitializer
initializerIdFields inherited from interface org.hibernate.sql.results.graph.Initializer
EMPTY_ARRAY -
Constructor Summary
ConstructorsConstructorDescriptionDiscriminatedEntityInitializer(InitializerParent<?> parent, DiscriminatedAssociationModelPart fetchedPart, NavigablePath fetchedNavigable, Fetch discriminatorFetch, Fetch keyFetch, boolean eager, boolean resultInitializer, AssemblerCreationState creationState) -
Method Summary
Modifier and TypeMethodDescriptionprotected InitializerDatacreateInitializerData(RowProcessingState rowProcessingState) protected voidforEachSubInitializer(BiConsumer<Initializer<?>, RowProcessingState> consumer, InitializerData data) Get the descriptor for the type of entity being initialized@Nullable Object@Nullable InitializerParent<?>Returns the parentInitializerornullif this is a result initializer.booleanIndicates whether this initializer has sub-initializers which are lazy.voidStep 3 - Initialize the state of the instance resolved inInitializer.resolveInstance(Data)from the current row values.voidinitializeInstanceFromParent(Object parentInstance, DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) Step 3.1 - Initialize the state of the instance as extracted from the givenparentInstance.booleanisEager()Indicates whether calling resolve is needed when the object for this initializer is initialized already.booleanIndicates whether this initializer is part of a key i.e.booleanIndicates if this is a result or fetch initializer.voidStep 1.2 - Special variant ofInitializer.resolveKey(InitializerData)that allows the reuse of key value and instance value from the previous row.voidresolveInstance(Object instance, DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) Step 2.2 - Use the given instance as resolved instance for this initializer.voidStep 2.1 - Using the key resolved inInitializer.resolveKey(Data), resolve the instance (of the thing initialized) to use for the current row.voidStep 1.1 - Resolve the key value for this initializer for the current row and then recurse to the sub-initializers.voidtoString()Methods inherited from class org.hibernate.sql.results.graph.internal.AbstractInitializer
finishUpRow, getData, startLoadingMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.hibernate.sql.results.graph.entity.EntityInitializer
asEntityInitializer, getConcreteDescriptor, getEntityIdentifier, getTargetInstance, getTargetInstance, isEntityInitializer, resetResolvedEntityRegistrations, resolveEntityKeyOnlyMethods inherited from interface org.hibernate.sql.results.graph.Initializer
asCollectionInitializer, asEmbeddableInitializer, endLoading, findOwningEntityInitializer, finishUpRow, getData, getResolvedInstance, getResolvedInstance, initializeInstance, initializeInstanceFromParent, isCollectionInitializer, isEmbeddableInitializer, isLazyCapable, resolveFromPreviousRow, resolveInstance, resolveInstance, resolveKey, resolveState, startLoading
-
Field Details
-
parent
-
-
Constructor Details
-
Method Details
-
createInitializerData
-
getParent
Description copied from interface:InitializerReturns the parentInitializerornullif this is a result initializer.- Specified by:
getParentin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
getInitializedPart
- Specified by:
getInitializedPartin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
resolveKey
Description copied from interface:InitializerStep 1.1 - Resolve the key value for this initializer for the current row and then recurse to the sub-initializers.After this point, the initializer knows whether further processing is necessary for the current row i.e. if the object is missing.
- Specified by:
resolveKeyin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>- Overrides:
resolveKeyin classAbstractInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
resolveState
- Specified by:
resolveStatein interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
resolveFromPreviousRow
public void resolveFromPreviousRow(DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) Description copied from interface:InitializerStep 1.2 - Special variant ofInitializer.resolveKey(InitializerData)that allows the reuse of key value and instance value from the previous row.- Specified by:
resolveFromPreviousRowin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
resolveInstance
Description copied from interface:InitializerStep 2.1 - Using the key resolved inInitializer.resolveKey(Data), resolve the instance (of the thing initialized) to use for the current row.After this point, the initializer knows the entity/collection/component instance for the current row based on the resolved key. If the resolving was successful,
Initializer.getResolvedInstance(RowProcessingState)will return that instance.- Specified by:
resolveInstancein interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
resolveInstance
public void resolveInstance(Object instance, DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) Description copied from interface:InitializerStep 2.2 - Use the given instance as resolved instance for this initializer. Initializers are supposed to recursively call this method for sub-initializers.This alternative initialization protocol is used when a parent instance was already part of the persistence context.
- Specified by:
resolveInstancein interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
initializeInstance
public void initializeInstance(DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) Description copied from interface:InitializerStep 3 - Initialize the state of the instance resolved inInitializer.resolveInstance(Data)from the current row values.All resolved state for the current row is injected into the resolved instance
- Specified by:
initializeInstancein interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>- Overrides:
initializeInstancein classAbstractInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
initializeInstanceFromParent
public void initializeInstanceFromParent(Object parentInstance, DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) Description copied from interface:InitializerStep 3.1 - Initialize the state of the instance as extracted from the givenparentInstance. Extraction can be done with theInitializer.getInitializedPart(). Initializers are supposed to recursively call this method for sub-initializers.This alternative initialization protocol is used for shallow query cache hits, in which case there is no data available in the
JdbcValuesCacheHitto initialize potentially lazy associations.- Specified by:
initializeInstanceFromParentin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
forEachSubInitializer
protected void forEachSubInitializer(BiConsumer<Initializer<?>, RowProcessingState> consumer, InitializerData data) -
getEntityDescriptor
Description copied from interface:EntityInitializerGet the descriptor for the type of entity being initialized- Specified by:
getEntityDescriptorin interfaceEntityInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
getConcreteDescriptor
public EntityPersister getConcreteDescriptor(DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) - Specified by:
getConcreteDescriptorin interfaceEntityInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
getEntityIdentifier
public @Nullable Object getEntityIdentifier(DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData data) - Specified by:
getEntityIdentifierin interfaceEntityInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
isPartOfKey
public boolean isPartOfKey()Description copied from interface:InitializerIndicates whether this initializer is part of a key i.e. entity identifier, foreign key or collection key.- Specified by:
isPartOfKeyin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
isEager
public boolean isEager()Description copied from interface:InitializerIndicates whether calling resolve is needed when the object for this initializer is initialized already.- Specified by:
isEagerin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
hasLazySubInitializers
public boolean hasLazySubInitializers()Description copied from interface:InitializerIndicates whether this initializer has sub-initializers which are lazy.- Specified by:
hasLazySubInitializersin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
isResultInitializer
public boolean isResultInitializer()Description copied from interface:InitializerIndicates if this is a result or fetch initializer.- Specified by:
isResultInitializerin interfaceInitializer<DiscriminatedEntityInitializer.DiscriminatedEntityInitializerData>
-
toString
-