Top Description Inners Fields Constructors Methods
org.hibernate.loader.ast.internal

public abstract Class AbstractNaturalIdLoader<T>

extends Object
implements NaturalIdLoader<T>
Class Inheritance
All Implemented Interfaces
org.hibernate.loader.ast.spi.NaturalIdLoader, org.hibernate.loader.ast.spi.MultiKeyLoader, org.hibernate.loader.ast.spi.Loader, org.hibernate.loader.ast.spi.EntityLoader
Known Direct Subclasses
org.hibernate.loader.ast.internal.CompoundNaturalIdLoader, org.hibernate.loader.ast.internal.SimpleNaturalIdLoader
Imports
java.util.List, .Locale, java.util.function.BiConsumer, .BiFunction, .Consumer, .Function, org.hibernate.HibernateException, .LockOptions, org.hibernate.engine.jdbc.env.spi.JdbcEnvironment, org.hibernate.engine.jdbc.spi.JdbcServices, org.hibernate.engine.spi.LoadQueryInfluencers, .SessionFactoryImplementor, .SharedSessionContractImplementor, org.hibernate.loader.ast.spi.NaturalIdLoadOptions, .NaturalIdLoader, org.hibernate.metamodel.mapping.EntityIdentifierMapping, .EntityMappingType, .NaturalIdMapping, .SelectableMapping, org.hibernate.query.internal.SimpleQueryOptions, org.hibernate.query.spi.QueryOptions, org.hibernate.spi.NavigablePath, org.hibernate.sql.ast.SqlAstTranslatorFactory, org.hibernate.sql.ast.spi.SimpleFromClauseAccessImpl, .SqlAliasBaseManager, .SqlExpressionResolver, org.hibernate.sql.ast.tree.expression.Expression, .JdbcParameter, org.hibernate.sql.ast.tree.from.TableGroup, .TableReference, org.hibernate.sql.ast.tree.predicate.Predicate, org.hibernate.sql.ast.tree.select.QuerySpec, .SelectStatement, org.hibernate.sql.exec.internal.BaseExecutionContext, .CallbackImpl, .JdbcParameterBindingsImpl, org.hibernate.sql.exec.spi.Callback, .JdbcOperationQuerySelect, .JdbcParameterBinding, .JdbcParameterBindings, .JdbcParametersList, org.hibernate.sql.results.graph.*, org.hibernate.sql.results.graph.internal.ImmutableFetchList, org.hibernate.sql.results.spi.ListResultsConsumer

Base support for NaturalIdLoader implementations

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 NaturalIdMapping

Constructor Summary

AccessConstructor and Description
public
AbstractNaturalIdLoader(NaturalIdMapping naturalIdMapping, EntityMappingType entityDescriptor)

Method Summary

Modifier and TypeMethod and Description
protected abstract void
applyNaturalIdRestriction(Object bindValue, TableGroup rootTableGroup, Consumer<Predicate> predicateConsumer, BiConsumer<JdbcParameter, JdbcParameterBinding> jdbcParameterConsumer, LoaderSqlAstCreationState sqlAstCreationState, SharedSessionContractImplementor session)

Apply restriction necessary to match the given natural-id value.

protected EntityMappingType
public EntityMappingType
public T
load(Object
The natural-id to load. One of 2 forms accepted: * Single-value - valid for entities with a simple (single-valued) natural-id * Map - valid for any natural-id load. The map is each value keyed by the attribute name that the value corresponds to. Even though this form is allowed for simple natural-ids, the single value form should be used as it is more efficient
naturalIdValue
,
NaturalIdLoadOptions
The options to apply to the load operation
options
,
SharedSessionContractImplementor
The session into which the entity is being loaded
session
)

Implements org.hibernate.loader.ast.spi.NaturalIdLoader.load.

Perform the load of the entity by its natural-id
protected NaturalIdMapping
protected Expression
resolveColumnReference(TableGroup rootTableGroup, SelectableMapping selectableMapping, SqlExpressionResolver sqlExpressionResolver, SessionFactoryImplementor sessionFactory)

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
Helper to resolve ColumnReferences
public Object
public Object
protected <L> L
selectByNaturalId(Object bindValue, NaturalIdLoadOptions options, BiFunction<TableGroup, LoaderSqlAstCreationState, DomainResult<?>> domainResultProducer, LoaderSqlAstCreationState.FetchProcessor fetchProcessor, Function<Boolean, Long> statementStartHandler, BiConsumer<Object, Long> statementCompletionHandler, SharedSessionContractImplementor session)

Perform a select, restricted by natural-id, based on `domainResultProducer` and `fetchProcessor`

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

entityDescriptorback to summary
private final EntityMappingType entityDescriptor
naturalIdMappingback to summary
private final NaturalIdMapping naturalIdMapping

Constructor Detail

AbstractNaturalIdLoaderback to summary
public AbstractNaturalIdLoader(NaturalIdMapping naturalIdMapping, EntityMappingType entityDescriptor)

Method Detail

applyNaturalIdRestrictionback to summary
protected abstract void applyNaturalIdRestriction(Object bindValue, TableGroup rootTableGroup, Consumer<Predicate> predicateConsumer, BiConsumer<JdbcParameter, JdbcParameterBinding> jdbcParameterConsumer, LoaderSqlAstCreationState sqlAstCreationState, SharedSessionContractImplementor session)

Apply restriction necessary to match the given natural-id value. Should apply any predicates to `predicateConsumer` as well and any parameter / binding pairs

entityDescriptorback to summary
protected EntityMappingType entityDescriptor()
getLoadableback to summary
public EntityMappingType getLoadable()

Implements org.hibernate.loader.ast.spi.EntityLoader.getLoadable, org.hibernate.loader.ast.spi.Loader.getLoadable.

Doc from org.hibernate.loader.ast.spi.Loader.getLoadable.

The value-mapping loaded by this loader

Annotations
@Override
loadback to summary
public T load(Object naturalIdValue, NaturalIdLoadOptions options, SharedSessionContractImplementor session)

Implements org.hibernate.loader.ast.spi.NaturalIdLoader.load.

Doc from org.hibernate.loader.ast.spi.NaturalIdLoader.load.

Perform the load of the entity by its natural-id

Parameters
naturalIdValue:Object

The natural-id to load. One of 2 forms accepted: * Single-value - valid for entities with a simple (single-valued) natural-id * Map - valid for any natural-id load. The map is each value keyed by the attribute name that the value corresponds to. Even though this form is allowed for simple natural-ids, the single value form should be used as it is more efficient

options:NaturalIdLoadOptions

The options to apply to the load operation

session:SharedSessionContractImplementor

The session into which the entity is being loaded

Annotations
@Override
naturalIdMappingback to summary
protected NaturalIdMapping naturalIdMapping()
resolveColumnReferenceback to summary
protected Expression resolveColumnReference(TableGroup rootTableGroup, SelectableMapping selectableMapping, SqlExpressionResolver sqlExpressionResolver, SessionFactoryImplementor sessionFactory)

Deprecated

as a consequence of SessionFactoryImplementor being deprecated. See corresponding docs for further information.

Helper to resolve ColumnReferences

resolveIdToNaturalIdback to summary
public Object resolveIdToNaturalId(Object id, SharedSessionContractImplementor session)

Implements org.hibernate.loader.ast.spi.NaturalIdLoader.resolveIdToNaturalId.

Doc from org.hibernate.loader.ast.spi.NaturalIdLoader.resolveIdToNaturalId.

Resolve the natural-id value(s) from an id

Annotations
@Override
resolveNaturalIdToIdback to summary
public Object resolveNaturalIdToId(Object naturalIdValue, SharedSessionContractImplementor session)

Implements org.hibernate.loader.ast.spi.NaturalIdLoader.resolveNaturalIdToId.

Doc from org.hibernate.loader.ast.spi.NaturalIdLoader.resolveNaturalIdToId.

Resolve the id from natural-id value

Annotations
@Override
selectByNaturalIdback to summary
protected <L> L selectByNaturalId(Object bindValue, NaturalIdLoadOptions options, BiFunction<TableGroup, LoaderSqlAstCreationState, DomainResult<?>> domainResultProducer, LoaderSqlAstCreationState.FetchProcessor fetchProcessor, Function<Boolean, Long> statementStartHandler, BiConsumer<Object, Long> statementCompletionHandler, SharedSessionContractImplementor session)

Perform a select, restricted by natural-id, based on `domainResultProducer` and `fetchProcessor`

org.hibernate.loader.ast.internal back to summary

private Class AbstractNaturalIdLoader.NaturalIdLoaderWithOptionsExecutionContext

extends BaseExecutionContext
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final Callback
private final QueryOptions

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Callback
public QueryOptions
Inherited from org.hibernate.sql.exec.internal.BaseExecutionContext:
getLoadQueryInfluencersgetQueryIdentifiergetQueryParameterBindingsgetSession

Field Detail

callbackback to summary
private final Callback callback
queryOptionsback to summary
private final QueryOptions queryOptions

Constructor Detail

NaturalIdLoaderWithOptionsExecutionContextback to summary
public NaturalIdLoaderWithOptionsExecutionContext(SharedSessionContractImplementor session, QueryOptions queryOptions)

Method Detail

getCallbackback to summary
public Callback getCallback()

Overrides org.hibernate.sql.exec.internal.BaseExecutionContext.getCallback.

Implements org.hibernate.sql.exec.spi.ExecutionContext.getCallback.

Annotations
@Override
getQueryOptionsback to summary
public QueryOptions getQueryOptions()

Overrides org.hibernate.sql.exec.internal.BaseExecutionContext.getQueryOptions.

Implements org.hibernate.sql.exec.spi.ExecutionContext.getQueryOptions.

Annotations
@Override