Top Inners Fields Constructors Methods
org.hibernate.query.sqm.mutation.internal.temptable

public Class TableBasedUpdateHandler

extends AbstractMutationHandler
implements UpdateHandler
Class Inheritance
All Implemented Interfaces
org.hibernate.query.sqm.mutation.internal.UpdateHandler, org.hibernate.query.sqm.mutation.internal.Handler
Imports
java.util.ArrayList, .Collections, .IdentityHashMap, .LinkedHashMap, .List, .Map, java.util.function.BiConsumer, .Function, org.hibernate.dialect.temptable.TemporaryTable, org.hibernate.engine.spi.SessionFactoryImplementor, .SharedSessionContractImplementor, org.hibernate.internal.util.collections.CollectionHelper, org.hibernate.metamodel.MappingMetamodel, org.hibernate.metamodel.mapping.MappingModelExpressible, org.hibernate.persister.entity.EntityPersister, .Joinable, org.hibernate.query.spi.DomainQueryExecutionContext, org.hibernate.query.sqm.internal.DomainParameterXref, .SqmJdbcExecutionContextAdapter, org.hibernate.query.sqm.mutation.internal.MultiTableSqmMutationConverter, .UpdateHandler, org.hibernate.query.sqm.mutation.spi.AbstractMutationHandler, org.hibernate.query.sqm.tree.expression.SqmParameter, org.hibernate.query.sqm.tree.predicate.SqmWhereClause, org.hibernate.query.sqm.tree.update.SqmUpdateStatement, org.hibernate.sql.ast.tree.expression.JdbcParameter, org.hibernate.sql.ast.tree.from.TableGroup, .TableReference, .TableReferenceJoin, org.hibernate.sql.ast.tree.predicate.Predicate, .PredicateCollector, org.hibernate.sql.ast.tree.update.Assignment, org.hibernate.sql.exec.spi.ExecutionContext, org.jboss.logging.Logger

Author
Steve Ebersole

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static interface

Field Summary

Modifier and TypeField and Description
private final AfterUseAction
private final DomainParameterXref
private final EntityPersister
private final TemporaryTable
private static final Logger
private final Function<SharedSessionContractImplementor, String>

Constructor Summary

AccessConstructor and Description
public
TableBasedUpdateHandler(SqmUpdateStatement<?> sqmUpdate, DomainParameterXref domainParameterXref, TemporaryTable idTable, AfterUseAction afterUseAction, Function<SharedSessionContractImplementor, String> sessionUidAccess, SessionFactoryImplementor sessionFactory)

Deprecated as a consequence of SessionFactoryImplementor being deprecated.

Method Summary

Modifier and TypeMethod and Description
protected UpdateExecutionDelegate
buildExecutionDelegate(MultiTableSqmMutationConverter sqmConverter, TemporaryTable idTable, AfterUseAction afterUseAction, Function<SharedSessionContractImplementor, String> sessionUidAccess, DomainParameterXref domainParameterXref, TableGroup updatingTableGroup, Map<String, TableReference> tableReferenceByAlias, List<Assignment> assignments, Predicate suppliedPredicate, Map<SqmParameter<?>, List<List<JdbcParameter>>> parameterResolutions, Map<SqmParameter<?>, MappingModelExpressible<?>> paramTypeResolutions, DomainQueryExecutionContext executionContext)

protected void
protected void
public int
execute(DomainQueryExecutionContext
Contextual information needed for execution
executionContext
)

Implements org.hibernate.query.sqm.mutation.internal.Handler.execute.

Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.
public SqmUpdateStatement<?>
protected SqmUpdateStatement<?>
protected TableBasedUpdateHandler.ExecutionDelegate
Inherited from org.hibernate.query.sqm.mutation.spi.AbstractMutationHandler:
getEntityDescriptorgetSessionFactory

Field Detail

afterUseActionback to summary
private final AfterUseAction afterUseAction
domainParameterXrefback to summary
private final DomainParameterXref domainParameterXref
entityDescriptorback to summary
private final EntityPersister entityDescriptor

Hides org.hibernate.query.sqm.mutation.spi.AbstractMutationHandler.entityDescriptor.

idTableback to summary
private final TemporaryTable idTable
logback to summary
private static final Logger log
sessionUidAccessback to summary
private final Function<SharedSessionContractImplementor, String> sessionUidAccess

Constructor Detail

TableBasedUpdateHandlerback to summary
public TableBasedUpdateHandler(SqmUpdateStatement<?> sqmUpdate, DomainParameterXref domainParameterXref, TemporaryTable idTable, AfterUseAction afterUseAction, Function<SharedSessionContractImplementor, String> sessionUidAccess, SessionFactoryImplementor sessionFactory)

Deprecated

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

Method Detail

buildExecutionDelegateback to summary
protected UpdateExecutionDelegate buildExecutionDelegate(MultiTableSqmMutationConverter sqmConverter, TemporaryTable idTable, AfterUseAction afterUseAction, Function<SharedSessionContractImplementor, String> sessionUidAccess, DomainParameterXref domainParameterXref, TableGroup updatingTableGroup, Map<String, TableReference> tableReferenceByAlias, List<Assignment> assignments, Predicate suppliedPredicate, Map<SqmParameter<?>, List<List<JdbcParameter>>> parameterResolutions, Map<SqmParameter<?>, MappingModelExpressible<?>> paramTypeResolutions, DomainQueryExecutionContext executionContext)
collectTableReferenceback to summary
protected void collectTableReference(TableReference tableReference, BiConsumer<String, TableReference> consumer)
collectTableReferenceback to summary
protected void collectTableReference(TableReferenceJoin tableReferenceJoin, BiConsumer<String, TableReference> consumer)
executeback to summary
public int execute(DomainQueryExecutionContext executionContext)

Implements org.hibernate.query.sqm.mutation.internal.Handler.execute.

Doc from org.hibernate.query.sqm.mutation.internal.Handler.execute.

Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.

Parameters
executionContext:DomainQueryExecutionContext

Contextual information needed for execution

Returns:int

The "number of rows affected" count

Annotations
@Override
getSqmDeleteOrUpdateStatementback to summary
public SqmUpdateStatement<?> getSqmDeleteOrUpdateStatement()

Overrides org.hibernate.query.sqm.mutation.spi.AbstractMutationHandler.getSqmDeleteOrUpdateStatement.

Annotations
@Override
getSqmUpdateback to summary
protected SqmUpdateStatement<?> getSqmUpdate()
resolveDelegateback to summary
protected TableBasedUpdateHandler.ExecutionDelegate resolveDelegate(DomainQueryExecutionContext executionContext)
org.hibernate.query.sqm.mutation.internal.temptable back to summary

public Interface TableBasedUpdateHandler.ExecutionDelegate

Known Direct Implementers
org.hibernate.query.sqm.mutation.internal.temptable.UpdateExecutionDelegate

Method Summary

Modifier and TypeMethod and Description
public int
execute(ExecutionContext executionContext)

Method Detail

executeback to summary
public int execute(ExecutionContext executionContext)