Class CteInsertHandler
java.lang.Object
org.hibernate.query.sqm.mutation.internal.cte.CteInsertHandler
- All Implemented Interfaces:
Handler,InsertHandler,MultiTableHandler
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCteInsertHandler(CteTable cteTable, SqmInsertStatement<?> sqmStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context, MutableObject<JdbcParameterBindings> firstJdbcParameterBindingsConsumer) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringaddDmlCtes(CteContainer statement, CteStatement queryCte, EntityPersister entityPersister, List<Map.Entry<List<CteColumn>, Assignment>> assignments, boolean assignsId, MultiTableSqmMutationConverter sqmConverter, SessionFactoryImplementor factory) protected ExpressioncreateCountStar(SessionFactoryImplementor factory, MultiTableSqmMutationConverter sqmConverter) static CteTablecreateCteTable(CteTable sqmCteTable, List<CteColumn> sqmCteColumns) Create theJdbcParameterBindingsfor this multi-table handler based on the execution context.booleanSignals that the SQL depends on the parameter bindings e.g.intexecute(JdbcParameterBindings jdbcParameterBindings, DomainQueryExecutionContext context) Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.protected StringgetCteTableName(String tableExpression, String subPrefix, SessionFactoryImplementor sessionFactory) protected StringgetCteTableName(String tableExpression, SessionFactoryImplementor sessionFactory) protected JdbcOperationQuerySelectbooleanisCompatibleWith(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) protected NamedTableReferenceresolveUnionTableReference(TableReference tableReference, String tableExpression)
-
Field Details
-
DML_RESULT_TABLE_NAME_PREFIX
- See Also:
-
CTE_TABLE_IDENTIFIER
- See Also:
-
ROW_NUMBERS_WITH_SEQUENCE_VALUE
- See Also:
-
-
Constructor Details
-
CteInsertHandler
public CteInsertHandler(CteTable cteTable, SqmInsertStatement<?> sqmStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context, MutableObject<JdbcParameterBindings> firstJdbcParameterBindingsConsumer)
-
-
Method Details
-
createCteTable
-
createJdbcParameterBindings
Description copied from interface:MultiTableHandlerCreate theJdbcParameterBindingsfor this multi-table handler based on the execution context.- Specified by:
createJdbcParameterBindingsin interfaceMultiTableHandler- Parameters:
context- Contextual information needed for execution- Returns:
- The built parameter bindings
-
dependsOnParameterBindings
public boolean dependsOnParameterBindings()Description copied from interface:MultiTableHandlerSignals that the SQL depends on the parameter bindings e.g. due to the need for inlining of parameter values or multiValued parameters.- Specified by:
dependsOnParameterBindingsin interfaceHandler- Specified by:
dependsOnParameterBindingsin interfaceMultiTableHandler
-
isCompatibleWith
public boolean isCompatibleWith(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) - Specified by:
isCompatibleWithin interfaceHandler- Specified by:
isCompatibleWithin interfaceMultiTableHandler
-
execute
public int execute(JdbcParameterBindings jdbcParameterBindings, DomainQueryExecutionContext context) Description copied from interface:MultiTableHandlerExecute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.- Specified by:
executein interfaceMultiTableHandler- Parameters:
jdbcParameterBindings- The parameter bindings for JDBC parameterscontext- Contextual information needed for execution- Returns:
- The "number of rows affected" count
-
getSelect
-
createCountStar
protected Expression createCountStar(SessionFactoryImplementor factory, MultiTableSqmMutationConverter sqmConverter) -
addDmlCtes
protected String addDmlCtes(CteContainer statement, CteStatement queryCte, EntityPersister entityPersister, List<Map.Entry<List<CteColumn>, Assignment>> assignments, boolean assignsId, MultiTableSqmMutationConverter sqmConverter, SessionFactoryImplementor factory) -
resolveUnionTableReference
protected NamedTableReference resolveUnionTableReference(TableReference tableReference, String tableExpression) -
getCteTableName
-
getCteTableName
protected String getCteTableName(String tableExpression, String subPrefix, SessionFactoryImplementor sessionFactory)
-