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 String
addDmlCtes
(CteContainer statement, CteStatement queryCte, EntityPersister entityPersister, List<Map.Entry<List<CteColumn>, Assignment>> assignments, boolean assignsId, MultiTableSqmMutationConverter sqmConverter, SessionFactoryImplementor factory) protected Expression
createCountStar
(SessionFactoryImplementor factory, MultiTableSqmMutationConverter sqmConverter) static CteTable
createCteTable
(CteTable sqmCteTable, List<CteColumn> sqmCteColumns) Create theJdbcParameterBindings
for this multi-table handler based on the execution context.boolean
Signals that the SQL depends on the parameter bindings e.g.int
execute
(JdbcParameterBindings jdbcParameterBindings, DomainQueryExecutionContext context) Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.protected String
getCteTableName
(String tableExpression, String subPrefix, SessionFactoryImplementor sessionFactory) protected String
getCteTableName
(String tableExpression, SessionFactoryImplementor sessionFactory) protected JdbcOperationQuerySelect
boolean
isCompatibleWith
(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) protected NamedTableReference
resolveUnionTableReference
(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:MultiTableHandler
Create theJdbcParameterBindings
for this multi-table handler based on the execution context.- Specified by:
createJdbcParameterBindings
in interfaceMultiTableHandler
- Parameters:
context
- Contextual information needed for execution- Returns:
- The built parameter bindings
-
dependsOnParameterBindings
public boolean dependsOnParameterBindings()Description copied from interface:MultiTableHandler
Signals that the SQL depends on the parameter bindings e.g. due to the need for inlining of parameter values or multiValued parameters.- Specified by:
dependsOnParameterBindings
in interfaceHandler
- Specified by:
dependsOnParameterBindings
in interfaceMultiTableHandler
-
isCompatibleWith
public boolean isCompatibleWith(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) - Specified by:
isCompatibleWith
in interfaceHandler
- Specified by:
isCompatibleWith
in interfaceMultiTableHandler
-
execute
public int execute(JdbcParameterBindings jdbcParameterBindings, DomainQueryExecutionContext context) Description copied from interface:MultiTableHandler
Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.- Specified by:
execute
in 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)
-