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

public Class InsertExecutionDelegate

extends Object
implements ExecutionDelegate
Class Inheritance
All Implemented Interfaces
org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler.ExecutionDelegate
Imports
java.sql.PreparedStatement, .SQLException, java.util.ArrayList, .Collections, .LinkedHashMap, .List, .Map, .UUID, java.util.function.Function, org.hibernate.dialect.temptable.TemporaryTable, .TemporaryTableColumn, org.hibernate.engine.FetchTiming, org.hibernate.engine.jdbc.spi.JdbcServices, org.hibernate.engine.spi.SessionFactoryImplementor, .SharedSessionContractImplementor, org.hibernate.id.BulkInsertionCapableIdentifierGenerator, .OptimizableGenerator, .PostInsertIdentityPersister, org.hibernate.id.enhanced.Optimizer, org.hibernate.id.insert.Binder, .InsertGeneratedIdentifierDelegate, org.hibernate.internal.util.collections.ArrayHelper, .CollectionHelper, org.hibernate.metamodel.mapping.BasicEntityIdentifierMapping, .EntityMappingType, .JdbcMapping, .MappingModelExpressible, .ModelPartContainer, org.hibernate.persister.entity.AbstractEntityPersister, .EntityPersister, org.hibernate.query.SemanticException, .SortDirection, org.hibernate.query.results.TableGroupImpl, org.hibernate.query.spi.DomainQueryExecutionContext, org.hibernate.query.sqm.ComparisonOperator, org.hibernate.query.sqm.internal.DomainParameterXref, .SqmUtil, org.hibernate.query.sqm.mutation.internal.MultiTableSqmMutationConverter, org.hibernate.query.sqm.spi.SqmParameterMappingModelResolutionAccess, org.hibernate.query.sqm.tree.expression.SqmParameter, org.hibernate.query.sqm.tree.insert.SqmInsertStatement, org.hibernate.sql.ast.tree.expression.ColumnReference, .JdbcParameter, org.hibernate.sql.ast.tree.from.NamedTableReference, .TableGroup, .TableReference, .UnionTableReference, org.hibernate.sql.ast.tree.insert.InsertSelectStatement, org.hibernate.sql.ast.tree.predicate.ComparisonPredicate, .Predicate, org.hibernate.sql.ast.tree.select.QuerySpec, .SelectStatement, .SortSpecification, org.hibernate.sql.ast.tree.update.Assignable, .Assignment, .UpdateStatement, org.hibernate.sql.exec.internal.JdbcParameterBindingImpl, .JdbcParameterBindingsImpl, .JdbcParameterImpl, org.hibernate.sql.exec.spi.ExecutionContext, .JdbcOperationQueryInsert, .JdbcOperationQueryMutation, .JdbcOperationQuerySelect, .JdbcOperationQueryUpdate, .JdbcParameterBindings, org.hibernate.sql.results.graph.basic.BasicFetch, org.hibernate.sql.results.internal.SqlSelectionImpl, org.hibernate.sql.results.spi.ListResultsConsumer, org.hibernate.generator.Generator, .OnExecutionGenerator, .BeforeExecutionGenerator, org.hibernate.type.descriptor.ValueBinder

Authors
Christian Beikov, Steve Ebersole

Field Summary

Modifier and TypeField and Description
private final AfterUseAction
private final Map<TableReference, List<Assignment>>
private final DomainParameterXref
private final EntityMappingType
private final TemporaryTable
private final InsertSelectStatement
private final JdbcParameterBindings
private final Map<SqmParameter<?>, MappingModelExpressible<?>>
private final SessionFactoryImplementor
sessionFactory

Deprecated as a consequence of SessionFactoryImplementor being deprecated.
private final Function<SharedSessionContractImplementor, String>
private final JdbcParameter
private final MultiTableSqmMutationConverter
private final SqmInsertStatement<?>
private final TableGroup

Constructor Summary

AccessConstructor and Description
public
InsertExecutionDelegate(SqmInsertStatement<?> sqmInsert, MultiTableSqmMutationConverter sqmConverter, TemporaryTable entityTable, AfterUseAction afterUseAction, Function<SharedSessionContractImplementor, String> sessionUidAccess, DomainParameterXref domainParameterXref, TableGroup insertingTableGroup, Map<String, TableReference> tableReferenceByAlias, List<Assignment> assignments, InsertSelectStatement insertStatement, Map<SqmParameter<?>, List<List<JdbcParameter>>> parameterResolutions, JdbcParameter sessionUidParameter, Map<SqmParameter<?>, MappingModelExpressible<?>> paramTypeResolutions, DomainQueryExecutionContext executionContext)

Method Summary

Modifier and TypeMethod and Description
public int
private void
insertRootTable(String tableExpression, int rows, String[] keyColumns, ExecutionContext executionContext)

private void
insertTable(String tableExpression, String[] keyColumns, boolean nullableTable, ExecutionContext executionContext)

private boolean
needsIdentifierGeneration(Generator identifierGenerator)

private TableReference
resolveTableReference(ColumnReference columnReference, TableGroup updatingTableGroup, Map<String, TableReference> tableReferenceByAlias)

private NamedTableReference
resolveUnionTableReference(TableReference tableReference, String tableExpression)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

afterUseActionback to summary
private final AfterUseAction afterUseAction
assignmentsByTableback to summary
private final Map<TableReference, List<Assignment>> assignmentsByTable
domainParameterXrefback to summary
private final DomainParameterXref domainParameterXref
entityDescriptorback to summary
private final EntityMappingType entityDescriptor
entityTableback to summary
private final TemporaryTable entityTable
insertStatementback to summary
private final InsertSelectStatement insertStatement
jdbcParameterBindingsback to summary
private final JdbcParameterBindings jdbcParameterBindings
paramTypeResolutionsback to summary
private final Map<SqmParameter<?>, MappingModelExpressible<?>> paramTypeResolutions
sessionFactoryback to summary
private final SessionFactoryImplementor sessionFactory

Deprecated

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

sessionUidAccessback to summary
private final Function<SharedSessionContractImplementor, String> sessionUidAccess
sessionUidParameterback to summary
private final JdbcParameter sessionUidParameter
sqmConverterback to summary
private final MultiTableSqmMutationConverter sqmConverter
sqmInsertback to summary
private final SqmInsertStatement<?> sqmInsert
updatingTableGroupback to summary
private final TableGroup updatingTableGroup

Constructor Detail

InsertExecutionDelegateback to summary
public InsertExecutionDelegate(SqmInsertStatement<?> sqmInsert, MultiTableSqmMutationConverter sqmConverter, TemporaryTable entityTable, AfterUseAction afterUseAction, Function<SharedSessionContractImplementor, String> sessionUidAccess, DomainParameterXref domainParameterXref, TableGroup insertingTableGroup, Map<String, TableReference> tableReferenceByAlias, List<Assignment> assignments, InsertSelectStatement insertStatement, Map<SqmParameter<?>, List<List<JdbcParameter>>> parameterResolutions, JdbcParameter sessionUidParameter, Map<SqmParameter<?>, MappingModelExpressible<?>> paramTypeResolutions, DomainQueryExecutionContext executionContext)

Method Detail

executeback to summary
public int execute(ExecutionContext executionContext)

Implements org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler.ExecutionDelegate.execute.

Annotations
@Override
insertRootTableback to summary
private void insertRootTable(String tableExpression, int rows, String[] keyColumns, ExecutionContext executionContext)
insertTableback to summary
private void insertTable(String tableExpression, String[] keyColumns, boolean nullableTable, ExecutionContext executionContext)
needsIdentifierGenerationback to summary
private boolean needsIdentifierGeneration(Generator identifierGenerator)
resolveTableReferenceback to summary
private TableReference resolveTableReference(ColumnReference columnReference, TableGroup updatingTableGroup, Map<String, TableReference> tableReferenceByAlias)
resolveUnionTableReferenceback to summary
private NamedTableReference resolveUnionTableReference(TableReference tableReference, String tableExpression)