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

public Class CircularBiDirectionalFetchImpl

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.LockMode, org.hibernate.engine.FetchTiming, org.hibernate.engine.spi.CollectionKey, .EntityHolder, .EntityKey, .EntityUniqueKey, .PersistenceContext, .SharedSessionContractImplementor, org.hibernate.metamodel.mapping.ModelPart, org.hibernate.metamodel.mapping.internal.ToOneAttributeMapping, org.hibernate.persister.entity.EntityPersister, org.hibernate.proxy.HibernateProxy, .LazyInitializer, org.hibernate.spi.NavigablePath, org.hibernate.sql.results.graph.AssemblerCreationState, .BiDirectionalFetch, .DomainResult, .DomainResultAssembler, .FetchParent, .FetchParentAccess, .Fetchable, .Initializer, org.hibernate.sql.results.graph.collection.CollectionInitializer, org.hibernate.sql.results.graph.entity.EntityInitializer, 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 ToOneAttributeMapping
private final FetchParent
private final DomainResult<?>
private final LockMode
private final NavigablePath
private final FetchTiming

Constructor Summary

AccessConstructor and Description
public
CircularBiDirectionalFetchImpl(FetchTiming timing, NavigablePath navigablePath, FetchParent fetchParent, ToOneAttributeMapping fetchable, LockMode lockMode, NavigablePath referencedNavigablePath, DomainResult<?> keyDomainResult)

Method Summary

Modifier and TypeMethod and Description
public DomainResultAssembler<J>
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?
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

fetchableback to summary
private final ToOneAttributeMapping fetchable
fetchParentback to summary
private final FetchParent fetchParent
keyDomainResultback to summary
private final DomainResult<?> keyDomainResult
lockModeback to summary
private final LockMode lockMode
referencedNavigablePathback to summary
private final NavigablePath referencedNavigablePath
timingback to summary
private final FetchTiming timing

Constructor Detail

CircularBiDirectionalFetchImplback to summary
public CircularBiDirectionalFetchImpl(FetchTiming timing, NavigablePath navigablePath, FetchParent fetchParent, ToOneAttributeMapping fetchable, LockMode lockMode, NavigablePath referencedNavigablePath, DomainResult<?> keyDomainResult)

Method Detail

createAssemblerback to summary
public DomainResultAssembler<J> 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
org.hibernate.sql.results.internal.domain back to summary

private Class CircularBiDirectionalFetchImpl.CircularFetchAssembler

extends Object
implements DomainResultAssembler<Object>
Class Inheritance
  • java.lang.Object
  • org.hibernate.sql.results.internal.domain.CircularBiDirectionalFetchImpl.CircularFetchAssembler
All Implemented Interfaces
org.hibernate.sql.results.graph.DomainResultAssembler

Field Summary

Modifier and TypeField and Description
private final NavigablePath
private final ToOneAttributeMapping
private final JavaType<?>
private final DomainResultAssembler<?>

Constructor Summary

AccessConstructor and Description
public
CircularFetchAssembler(ToOneAttributeMapping fetchable, NavigablePath circularPath, JavaType<?> javaType, DomainResultAssembler<?> keyDomainResultAssembler)

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.
private Object
private EntityInitializer
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

circularPathback to summary
private final NavigablePath circularPath
fetchableback to summary
private final ToOneAttributeMapping fetchable
javaTypeback to summary
private final JavaType<?> javaType
keyDomainResultAssemblerback to summary
private final DomainResultAssembler<?> keyDomainResultAssembler

Constructor Detail

CircularFetchAssemblerback to summary
public CircularFetchAssembler(ToOneAttributeMapping fetchable, NavigablePath circularPath, JavaType<?> javaType, DomainResultAssembler<?> keyDomainResultAssembler)

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
loadByUniqueKeyback to summary
private Object loadByUniqueKey(EntityPersister entityPersister, Object key, SharedSessionContractImplementor session, PersistenceContext persistenceContext)
resolveCircularInitializerback to summary
private EntityInitializer resolveCircularInitializer(RowProcessingState rowProcessingState)