Class AbstractCteMutationHandler
java.lang.Object
org.hibernate.query.sqm.mutation.spi.AbstractMutationHandler
org.hibernate.query.sqm.mutation.internal.cte.AbstractCteMutationHandler
- All Implemented Interfaces:
Handler
- Direct Known Subclasses:
CteDeleteHandler,CteUpdateHandler
Defines how identifier values are selected from the updatable/deletable tables.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAbstractCteMutationHandler(CteTable cteTable, SqmDeleteOrUpdateStatement<?> sqmStatement, DomainParameterXref domainParameterXref, CteMutationStrategy strategy, SessionFactoryImplementor sessionFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidaddDmlCtes(CteContainer statement, CteStatement idSelectCte, MultiTableSqmMutationConverter sqmConverter, Map<SqmParameter<?>, List<JdbcParameter>> parameterResolutions, SessionFactoryImplementor factory) protected ExpressioncreateCountStar(SessionFactoryImplementor factory, MultiTableSqmMutationConverter sqmConverter) Used by Hibernate Reactiveprotected QuerySpeccreateIdSubQuery(CteStatement idSelectCte, ModelPart fkModelPart, SessionFactoryImplementor factory) protected PredicatecreateIdSubQueryPredicate(List<? extends Expression> lhsExpressions, CteStatement idSelectCte, SessionFactoryImplementor factory) protected PredicatecreateIdSubQueryPredicate(List<? extends Expression> lhsExpressions, CteStatement idSelectCte, ModelPart fkModelPart, SessionFactoryImplementor factory) intexecute(DomainQueryExecutionContext executionContext) Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.protected abstract StringgetCteTableName(String tableExpression) protected NamedTableReferenceresolveUnionTableReference(TableReference tableReference, String tableExpression) Methods inherited from class org.hibernate.query.sqm.mutation.spi.AbstractMutationHandler
getEntityDescriptor, getSessionFactory, getSqmDeleteOrUpdateStatement
-
Field Details
-
CTE_TABLE_IDENTIFIER
- See Also:
-
-
Constructor Details
-
AbstractCteMutationHandler
public AbstractCteMutationHandler(CteTable cteTable, SqmDeleteOrUpdateStatement<?> sqmStatement, DomainParameterXref domainParameterXref, CteMutationStrategy strategy, SessionFactoryImplementor sessionFactory)
-
-
Method Details
-
getCteTable
-
getDomainParameterXref
-
getStrategy
-
execute
Description copied from interface:HandlerExecute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.- Parameters:
executionContext- Contextual information needed for execution- Returns:
- The "number of rows affected" count
-
createCountStar
protected Expression createCountStar(SessionFactoryImplementor factory, MultiTableSqmMutationConverter sqmConverter) Used by Hibernate Reactive -
createIdSubQueryPredicate
protected Predicate createIdSubQueryPredicate(List<? extends Expression> lhsExpressions, CteStatement idSelectCte, SessionFactoryImplementor factory) -
createIdSubQueryPredicate
protected Predicate createIdSubQueryPredicate(List<? extends Expression> lhsExpressions, CteStatement idSelectCte, ModelPart fkModelPart, SessionFactoryImplementor factory) -
createIdSubQuery
protected QuerySpec createIdSubQuery(CteStatement idSelectCte, ModelPart fkModelPart, SessionFactoryImplementor factory) -
addDmlCtes
protected abstract void addDmlCtes(CteContainer statement, CteStatement idSelectCte, MultiTableSqmMutationConverter sqmConverter, Map<SqmParameter<?>, List<JdbcParameter>> parameterResolutions, SessionFactoryImplementor factory) -
resolveUnionTableReference
protected NamedTableReference resolveUnionTableReference(TableReference tableReference, String tableExpression) -
getCteTableName
-