Top Inners Fields Constructors Methods
org.hibernate.sql.results.internal.domain

public Class CircularFetchImpl

extends Object
implements BiDirectionalFetch
Class Inheritance
All Implemented Interfaces
org.hibernate.sql.results.graph.BiDirectionalFetch, org.hibernate.sql.results.graph.Fetch, org.hibernate.sql.results.graph.DomainResultGraphNode
Imports
org.hibernate.engine.FetchTiming, org.hibernate.metamodel.mapping.EntityMappingType, org.hibernate.metamodel.mapping.internal.ToOneAttributeMapping, org.hibernate.persister.entity.EntityPersister, org.hibernate.spi.NavigablePath, org.hibernate.sql.results.graph.AssemblerCreationState, .BiDirectionalFetch, .DomainResult, .DomainResultAssembler, .FetchParent, .FetchParentAccess, .Fetchable, .Initializer, org.hibernate.sql.results.graph.entity.EntityInitializer, org.hibernate.sql.results.graph.entity.internal.EntityDelayedFetchInitializer, .EntitySelectFetchInitializerBuilder, org.hibernate.sql.results.jdbc.spi.JdbcValuesSourceProcessingOptions, .RowProcessingState, org.hibernate.type.descriptor.java.JavaType

Author
Andrea Boriero

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Field Summary

Modifier and TypeField and Description
private final EntityMappingType
private final ToOneAttributeMapping
private final FetchParent
private final DomainResult<?>
private final ToOneAttributeMapping
private final NavigablePath
private final boolean
private final FetchTiming

Constructor Summary

AccessConstructor and Description
public
CircularFetchImpl(ToOneAttributeMapping referencedModelPart, EntityMappingType entityMappingType, FetchTiming timing, NavigablePath navigablePath, FetchParent fetchParent, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, NavigablePath referencedNavigablePath, DomainResult<?> keyResult)

protected

Method Summary

Modifier and TypeMethod and 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)

public DomainResultAssembler<?>
createAssembler(FetchParentAccess parentAccess, AssemblerCreationState creationState)

Implements org.hibernate.sql.results.graph.Fetch.createAssembler.

Create the assembler for this fetch
public Fetchable
public FetchParent
getFetchParent()

Implements org.hibernate.sql.results.graph.Fetch.getFetchParent.

Obtain the owner of this fetch.
public NavigablePath
getNavigablePath()

Implements org.hibernate.sql.results.graph.Fetch.getNavigablePath.

Get the property path to this fetch
public NavigablePath
getReferencedPath()

Implements org.hibernate.sql.results.graph.BiDirectionalFetch.getReferencedPath.

The NavigablePath for the DomainResult or Fetch that this Fetch refers to.
public JavaType<?>
public FetchTiming
public boolean
hasTableGroup()

Implements org.hibernate.sql.results.graph.Fetch.hasTableGroup.

Is the TableGroup associated with this Fetch defined?
protected Initializer
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

entityMappingTypeback to summary
private final EntityMappingType entityMappingType
fetchableback to summary
private final ToOneAttributeMapping fetchable
fetchParentback to summary
private final FetchParent fetchParent
keyResultback to summary
private final DomainResult<?> keyResult
referencedModelPartback to summary
private final ToOneAttributeMapping referencedModelPart
referencedNavigablePathback to summary
private final NavigablePath referencedNavigablePath
selectByUniqueKeyback to summary
private final boolean selectByUniqueKey
timingback to summary
private final FetchTiming timing

Constructor Detail

CircularFetchImplback to summary
public CircularFetchImpl(ToOneAttributeMapping referencedModelPart, EntityMappingType entityMappingType, FetchTiming timing, NavigablePath navigablePath, FetchParent fetchParent, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, NavigablePath referencedNavigablePath, DomainResult<?> keyResult)
CircularFetchImplback to summary
protected CircularFetchImpl(CircularFetchImpl original)

Method Detail

buildEntityDelayedFetchInitializerback to summary
protected Initializer buildEntityDelayedFetchInitializer(FetchParentAccess parentAccess, NavigablePath referencedPath, ToOneAttributeMapping fetchable, boolean selectByUniqueKey, DomainResultAssembler<?> resultAssembler)
buildEntitySelectFetchInitializerback to summary
protected Initializer buildEntitySelectFetchInitializer(FetchParentAccess parentAccess, ToOneAttributeMapping fetchable, EntityPersister entityPersister, DomainResult<?> keyResult, NavigablePath navigablePath, boolean selectByUniqueKey, AssemblerCreationState creationState)
createAssemblerback to summary
public DomainResultAssembler<?> createAssembler(FetchParentAccess parentAccess, AssemblerCreationState creationState)

Implements org.hibernate.sql.results.graph.Fetch.createAssembler.

Doc from org.hibernate.sql.results.graph.Fetch.createAssembler.

Create the assembler for this fetch

Annotations
@Override
getFetchedMappingback to summary
public Fetchable getFetchedMapping()

Implements org.hibernate.sql.results.graph.Fetch.getFetchedMapping.

Doc from org.hibernate.sql.results.graph.Fetch.getFetchedMapping.

The value mapping being fetched

Annotations
@Override
getFetchParentback to summary
public FetchParent getFetchParent()

Implements org.hibernate.sql.results.graph.Fetch.getFetchParent.

Doc from org.hibernate.sql.results.graph.Fetch.getFetchParent.

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. org.hibernate.annotations.Parent)

Annotations
@Override
getNavigablePathback to summary
public NavigablePath getNavigablePath()

Implements org.hibernate.sql.results.graph.Fetch.getNavigablePath.

Doc from org.hibernate.sql.results.graph.Fetch.getNavigablePath.

Get the property path to this fetch

Returns:NavigablePath

The property path

Annotations
@Override
getReferencedPathback to summary
public NavigablePath getReferencedPath()

Implements org.hibernate.sql.results.graph.BiDirectionalFetch.getReferencedPath.

Doc from org.hibernate.sql.results.graph.BiDirectionalFetch.getReferencedPath.

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 from getNavigablePath() which returns this fetch's path, i.e. `p.address.owner` and `p.address.owner.address` respectively

Annotations
@Override
getResultJavaTypeback to summary
public JavaType<?> getResultJavaType()

Implements org.hibernate.sql.results.graph.DomainResultGraphNode.getResultJavaType.

Annotations
@Override
getTimingback to summary
public FetchTiming getTiming()

Implements org.hibernate.sql.results.graph.Fetch.getTiming.

Doc from org.hibernate.sql.results.graph.Fetch.getTiming.

immediate or delayed? todo (6.0) : should we also expose the fetch-style? Perhaps the fetch-options?

Annotations
@Override
hasTableGroupback to summary
public boolean hasTableGroup()

Implements org.hibernate.sql.results.graph.Fetch.hasTableGroup.

Doc from org.hibernate.sql.results.graph.Fetch.hasTableGroup.

Is the TableGroup associated with this Fetch defined?

Annotations
@Override
initializerFactoryback to summary
protected Initializer initializerFactory(FetchParentAccess parentAccess, AssemblerCreationState creationState)
org.hibernate.sql.results.internal.domain back to summary

private Class CircularFetchImpl.BiDirectionalFetchAssembler

extends Object
implements DomainResultAssembler
Class Inheritance
  • java.lang.Object
  • org.hibernate.sql.results.internal.domain.CircularFetchImpl.BiDirectionalFetchAssembler
All Implemented Interfaces
org.hibernate.sql.results.graph.DomainResultAssembler

Field Summary

Modifier and TypeField and Description
private JavaType<T>
private EntityInitializer

Constructor Summary

AccessConstructor and Description
public
BiDirectionalFetchAssembler(EntityInitializer initializer, JavaType<T> assembledJavaType)

Method Summary

Modifier and TypeMethod and Description
public Object
public JavaType<T>
getAssembledJavaType()

Implements org.hibernate.sql.results.graph.DomainResultAssembler.getAssembledJavaType.

The JavaType describing the Java type that this assembler assembles.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

assembledJavaTypeback to summary
private JavaType<T> assembledJavaType
initializerback to summary
private EntityInitializer initializer

Constructor Detail

BiDirectionalFetchAssemblerback to summary
public BiDirectionalFetchAssembler(EntityInitializer initializer, JavaType<T> assembledJavaType)

Method Detail

assembleback to summary
public Object assemble(RowProcessingState rowProcessingState, JdbcValuesSourceProcessingOptions options)

Implements org.hibernate.sql.results.graph.DomainResultAssembler.assemble.

Doc from org.hibernate.sql.results.graph.DomainResultAssembler.assemble.

The main "assembly" contract. Assemble the result and return it.

Annotations
@Override
getAssembledJavaTypeback to summary
public JavaType<T> getAssembledJavaType()

Implements org.hibernate.sql.results.graph.DomainResultAssembler.getAssembledJavaType.

Doc from org.hibernate.sql.results.graph.DomainResultAssembler.getAssembledJavaType.

The JavaType describing the Java type that this assembler assembles.

Annotations
@Override