Top Fields Constructors Methods
org.hibernate.query.sqm.mutation.internal.inline

public Class InlineUpdateHandler

extends Object
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, .Collection, .Collections, .HashMap, .IdentityHashMap, .LinkedHashMap, .List, .Map, java.util.function.BiConsumer, .Consumer, .Supplier, org.hibernate.boot.model.internal.SoftDeleteHelper, org.hibernate.engine.jdbc.spi.JdbcServices, org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.internal.util.collections.CollectionHelper, org.hibernate.metamodel.MappingMetamodel, org.hibernate.metamodel.mapping.BasicEntityIdentifierMapping, .BasicValuedMapping, .BasicValuedModelPart, .EntityIdentifierMapping, .MappingModelExpressible, .SelectableConsumer, .SoftDeleteMapping, org.hibernate.persister.entity.AbstractEntityPersister, .EntityPersister, .Joinable, org.hibernate.query.SemanticException, org.hibernate.query.spi.DomainQueryExecutionContext, org.hibernate.query.sqm.ComparisonOperator, org.hibernate.query.sqm.internal.DomainParameterXref, .SqmJdbcExecutionContextAdapter, .SqmUtil, org.hibernate.query.sqm.mutation.internal.MatchingIdSelectionHelper, .MultiTableSqmMutationConverter, .TableKeyExpressionCollector, .UpdateHandler, org.hibernate.query.sqm.spi.SqmParameterMappingModelResolutionAccess, org.hibernate.query.sqm.tree.expression.SqmParameter, org.hibernate.query.sqm.tree.predicate.SqmWhereClause, org.hibernate.query.sqm.tree.update.SqmUpdateStatement, org.hibernate.spi.NavigablePath, org.hibernate.sql.ast.SqlAstJoinType, .SqlAstTranslatorFactory, org.hibernate.sql.ast.spi.SqlAliasBaseImpl, .SqlSelection, org.hibernate.sql.ast.tree.expression.ColumnReference, .Expression, .JdbcParameter, .QueryLiteral, .SqlTuple, org.hibernate.sql.ast.tree.from.NamedTableReference, .TableGroup, .TableGroupJoin, .TableReference, .TableReferenceJoin, .UnionTableReference, .ValuesTableGroup, org.hibernate.sql.ast.tree.insert.InsertSelectStatement, .Values, org.hibernate.sql.ast.tree.predicate.ComparisonPredicate, .InListPredicate, .NullnessPredicate, .Predicate, .PredicateCollector, org.hibernate.sql.ast.tree.select.QuerySpec, .SelectClause, org.hibernate.sql.ast.tree.update.Assignment, .UpdateStatement, org.hibernate.sql.exec.spi.ExecutionContext, .JdbcMutationExecutor, .JdbcOperationQueryMutation, .JdbcParameterBindings, org.hibernate.sql.results.internal.SqlSelectionImpl

Author
Steve Ebersole

Field Summary

Modifier and TypeField and Description
private final DomainParameterXref
private final DomainQueryExecutionContext
private final JdbcMutationExecutor
private final MatchingIdRestrictionProducer
private final SessionFactoryImplementor
sessionFactory

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
private final SqlAstTranslatorFactory
private final SqmUpdateStatement<?>

Constructor Summary

AccessConstructor and Description
public
InlineUpdateHandler(MatchingIdRestrictionProducer matchingIdsPredicateProducer, SqmUpdateStatement<?> sqmUpdate, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context)

Method Summary

Modifier and TypeMethod and Description
private Expression
asExpression(SelectClause selectClause)

private void
private 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.
private TableReference
resolveTableReference(ColumnReference columnReference, Map<String, TableReference> tableReferenceByAlias)

private NamedTableReference
resolveUnionTableReference(TableReference tableReference, String tableExpression)

private void
updateTable(String tableExpression, Supplier<Consumer<SelectableConsumer>> tableKeyColumnVisitationSupplier, EntityPersister entityDescriptor, TableGroup updatingTableGroup, Map<TableReference, List<Assignment>> assignmentsByTable, List<Expression> inListExpressions, int expectedUpdateCount, JdbcParameterBindings jdbcParameterBindings, ExecutionContext executionContext)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

domainParameterXrefback to summary
private final DomainParameterXref domainParameterXref
executionContextback to summary
private final DomainQueryExecutionContext executionContext
jdbcMutationExecutorback to summary
private final JdbcMutationExecutor jdbcMutationExecutor
matchingIdsPredicateProducerback to summary
private final MatchingIdRestrictionProducer matchingIdsPredicateProducer
sessionFactoryback to summary
private final SessionFactoryImplementor sessionFactory

Deprecated

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

sqlAstTranslatorFactoryback to summary
private final SqlAstTranslatorFactory sqlAstTranslatorFactory
sqmUpdateback to summary
private final SqmUpdateStatement<?> sqmUpdate

Constructor Detail

InlineUpdateHandlerback to summary
public InlineUpdateHandler(MatchingIdRestrictionProducer matchingIdsPredicateProducer, SqmUpdateStatement<?> sqmUpdate, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context)

Method Detail

asExpressionback to summary
private Expression asExpression(SelectClause selectClause)
collectTableReferenceback to summary
private void collectTableReference(TableReference tableReference, BiConsumer<String, TableReference> consumer)
collectTableReferenceback to summary
private 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
resolveTableReferenceback to summary
private TableReference resolveTableReference(ColumnReference columnReference, Map<String, TableReference> tableReferenceByAlias)
resolveUnionTableReferenceback to summary
private NamedTableReference resolveUnionTableReference(TableReference tableReference, String tableExpression)
updateTableback to summary
private void updateTable(String tableExpression, Supplier<Consumer<SelectableConsumer>> tableKeyColumnVisitationSupplier, EntityPersister entityDescriptor, TableGroup updatingTableGroup, Map<TableReference, List<Assignment>> assignmentsByTable, List<Expression> inListExpressions, int expectedUpdateCount, JdbcParameterBindings jdbcParameterBindings, ExecutionContext executionContext)