Class CircularFetchImpl
- java.lang.Object
-
- org.hibernate.sql.results.internal.domain.CircularFetchImpl
-
- All Implemented Interfaces:
BiDirectionalFetch
,DomainResultGraphNode
,Fetch
public class CircularFetchImpl extends Object implements BiDirectionalFetch
-
-
Constructor Summary
Constructors Modifier Constructor Description CircularFetchImpl(ToOneAttributeMapping referencedModelPart, EntityMappingType entityMappingType, FetchTiming timing, NavigablePath navigablePath, FetchParent fetchParent, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, NavigablePath referencedNavigablePath, DomainResult<?> keyResult)
protected
CircularFetchImpl(CircularFetchImpl original)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Initializer
buildEntityDelayedFetchInitializer(FetchParentAccess parentAccess, NavigablePath referencedPath, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, DomainResultAssembler<?> resultAssembler)
protected Initializer
buildEntitySelectFetchInitializer(FetchParentAccess parentAccess, ToOneAttributeMapping fetchable, EntityPersister entityPersister, DomainResult<?> keyResult, NavigablePath navigablePath, boolean selectByUniqueKey, AssemblerCreationState creationState)
DomainResultAssembler<?>
createAssembler(FetchParentAccess parentAccess, AssemblerCreationState creationState)
Create the assembler for this fetchFetchable
getFetchedMapping()
The value mapping being fetchedFetchParent
getFetchParent()
Obtain the owner of this fetch.NavigablePath
getNavigablePath()
Get the property path to this fetchNavigablePath
getReferencedPath()
The NavigablePath for the DomainResult or Fetch that this Fetch refers to.JavaType<?>
getResultJavaType()
FetchTiming
getTiming()
immediate or delayed? todo (6.0) : should we also expose the fetch-style? Perhaps the fetch-options?boolean
hasTableGroup()
Is the TableGroup associated with this Fetch defined?protected Initializer
initializerFactory(FetchParentAccess parentAccess, AssemblerCreationState creationState)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.sql.results.graph.DomainResultGraphNode
appliesTo
-
Methods inherited from interface org.hibernate.sql.results.graph.Fetch
asFetchParent, containsAnyNonScalarResults
-
-
-
-
Constructor Detail
-
CircularFetchImpl
public CircularFetchImpl(ToOneAttributeMapping referencedModelPart, EntityMappingType entityMappingType, FetchTiming timing, NavigablePath navigablePath, FetchParent fetchParent, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, NavigablePath referencedNavigablePath, DomainResult<?> keyResult)
-
CircularFetchImpl
protected CircularFetchImpl(CircularFetchImpl original)
-
-
Method Detail
-
getNavigablePath
public NavigablePath getNavigablePath()
Description copied from interface:Fetch
Get the property path to this fetch- Specified by:
getNavigablePath
in interfaceDomainResultGraphNode
- Specified by:
getNavigablePath
in interfaceFetch
- Returns:
- The property path
-
getReferencedPath
public NavigablePath getReferencedPath()
Description copied from interface:BiDirectionalFetch
The NavigablePath for the DomainResult or Fetch that this Fetch refers to. For `o`, the referenced path is `p`. For `oa`, it's `p.address` Different fromFetch.getNavigablePath()
which returns this fetch's path, i.e. `p.address.owner` and `p.address.owner.address` respectively- Specified by:
getReferencedPath
in interfaceBiDirectionalFetch
-
getFetchParent
public FetchParent getFetchParent()
Description copied from interface:Fetch
Obtain the owner of this fetch. Ultimately used to identify the thing that "owns" this fetched navigable for the purpose of:* identifying the associated owner reference as we process the fetch * inject the fetched instance into the parent and potentially inject the parent reference into the fetched instance if it defines such injection (e.g.
Parent
)- Specified by:
getFetchParent
in interfaceFetch
-
getFetchedMapping
public Fetchable getFetchedMapping()
Description copied from interface:Fetch
The value mapping being fetched- Specified by:
getFetchedMapping
in interfaceFetch
-
getResultJavaType
public JavaType<?> getResultJavaType()
- Specified by:
getResultJavaType
in interfaceDomainResultGraphNode
-
createAssembler
public DomainResultAssembler<?> createAssembler(FetchParentAccess parentAccess, AssemblerCreationState creationState)
Description copied from interface:Fetch
Create the assembler for this fetch- Specified by:
createAssembler
in interfaceFetch
-
initializerFactory
protected Initializer initializerFactory(FetchParentAccess parentAccess, AssemblerCreationState creationState)
-
buildEntitySelectFetchInitializer
protected Initializer buildEntitySelectFetchInitializer(FetchParentAccess parentAccess, ToOneAttributeMapping fetchable, EntityPersister entityPersister, DomainResult<?> keyResult, NavigablePath navigablePath, boolean selectByUniqueKey, AssemblerCreationState creationState)
-
buildEntityDelayedFetchInitializer
protected Initializer buildEntityDelayedFetchInitializer(FetchParentAccess parentAccess, NavigablePath referencedPath, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, DomainResultAssembler<?> resultAssembler)
-
getTiming
public FetchTiming getTiming()
Description copied from interface:Fetch
immediate or delayed? todo (6.0) : should we also expose the fetch-style? Perhaps the fetch-options?
-
hasTableGroup
public boolean hasTableGroup()
Description copied from interface:Fetch
Is the TableGroup associated with this Fetch defined?- Specified by:
hasTableGroup
in interfaceFetch
-
-