Class MultiTableSqmMutationConverter
- java.lang.Object
-
- org.hibernate.query.sqm.spi.BaseSemanticQueryWalker
-
- org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter<Statement>
-
- org.hibernate.query.sqm.mutation.internal.MultiTableSqmMutationConverter
-
- All Implemented Interfaces:
SemanticQueryWalker<Object>
,JdbcParameterBySqmParameterAccess
,SqmToSqlAstConverter
,SqmTranslator<Statement>
,FromClauseAccess
,SqlAstCreationState
,DomainResultCreationState
,JdbcTypeIndicators
public class MultiTableSqmMutationConverter extends BaseSqmToSqlAstConverter<Statement>
Specialized BaseSqmToSqlAstConverter implementation used during conversion of an SQM mutation query tree representing into the various SQL AST trees needed to perform that operation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MultiTableSqmMutationConverter.SqmParameterResolutionConsumer
-
Nested classes/interfaces inherited from class org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter
BaseSqmToSqlAstConverter.AdditionalInsertValues, BaseSqmToSqlAstConverter.DelegatingSqmAliasedNodeCollector, BaseSqmToSqlAstConverter.SqmAliasedNodeCollector, BaseSqmToSqlAstConverter.SqmAliasedNodePositionTracker
-
-
Field Summary
-
Fields inherited from class org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter
additionalRestrictions
-
Fields inherited from interface org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators
NO_COLUMN_LENGTH, NO_COLUMN_PRECISION, NO_COLUMN_SCALE
-
-
Constructor Summary
Constructors Constructor Description MultiTableSqmMutationConverter(EntityMappingType mutatingEntityDescriptor, SqmStatement<?> statement, SqmRoot<?> sqmRoot, String sourceAlias, DomainParameterXref domainParameterXref, QueryOptions queryOptions, LoadQueryInfluencers loadQueryInfluencers, QueryParameterBindings domainParameterBindings, SqlAstCreationContext creationContext)
MultiTableSqmMutationConverter(EntityMappingType mutatingEntityDescriptor, SqmStatement<?> statement, SqmRoot<?> sqmRoot, DomainParameterXref domainParameterXref, QueryOptions queryOptions, LoadQueryInfluencers loadQueryInfluencers, QueryParameterBindings domainParameterBindings, SqlAstCreationContext creationContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Expression
consumeSqmParameter(SqmParameter<?> sqmParameter, MappingModelExpressible<?> valueMapping, BiConsumer<Integer,JdbcParameter> jdbcParameterConsumer)
EntityMappingType
getMutatingEntityDescriptor()
TableGroup
getMutatingTableGroup()
Stack<SqlAstProcessingState>
getProcessingStateStack()
void
pruneTableGroupJoins()
List<Assignment>
visitSetClause(SqmSetClause setClause)
void
visitSetClause(SqmSetClause setClause, Consumer<Assignment> assignmentConsumer, MultiTableSqmMutationConverter.SqmParameterResolutionConsumer parameterResolutionConsumer)
Specialized hook to visit the assignments defined by the update SQM.Predicate
visitWhereClause(SqmWhereClause whereClause)
Predicate
visitWhereClause(SqmWhereClause sqmWhereClause, Consumer<ColumnReference> restrictionColumnReferenceConsumer, MultiTableSqmMutationConverter.SqmParameterResolutionConsumer parameterResolutionConsumer)
-
Methods inherited from class org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter
addVersionedAssignment, consumeExplicitJoin, consumeExplicitJoins, consumeFromClauseCorrelatedRoot, consumeFromClauseRoot, consumeSingleSqmParameter, consumeSqmParameter, createCorrelatedAggregateSubQuery, createCteColumn, createLateralJoinExpression, createMinOrMaxIndexOrElement, currentSqlSelectionCollector, determineImplicitSelection, determineValueMapping, determineValueMapping, expandSelfRenderingFunctionMultiValueParameter, findTableGroup, findTableGroupOnCurrentFromClause, forEachCteColumn, getCreationContext, getCurrentClauseStack, getCurrentlyResolvingForeignKeyPart, getCurrentProcessingState, getCurrentSqmQueryPart, getDialect, getFromClauseAccess, getFromClauseIndex, getInferredValueMapping, getJdbcParamsBySqmParam, getLoadQueryInfluencers, getPreferredSqlTypeCodeForBoolean, getPreferredSqlTypeCodeForDuration, getPreferredSqlTypeCodeForUuid, getQueryOptions, getSqlAliasBaseGenerator, getSqlAstCreationState, getSqlExpressionResolver, getSqmParameterMappingModelExpressibleResolutions, getStatement, getTypeConfiguration, isAssociationKeyVisited, isRegisteringVisitedAssociationKeys, isResolvingCircularFetch, popProcessingStateStack, pushProcessingState, pushProcessingState, registerEntityNameUsage, registerLockMode, registerQueryTransformer, registerTableGroup, registerTypeUsage, registerTypeUsage, registerVisitedAssociationKey, removeVisitedAssociationKey, resolveFunctionImpliedReturnType, resolveGroupOrOrderByExpression, resolveMetadata, resolveModelPart, setCurrentlyResolvingForeignKeyPart, setResolvingCircularFetch, supportsEntityNameUsage, translate, visitAny, visitAnyDiscriminatorTypeExpression, visitAnyDiscriminatorTypeValueExpression, visitAnyValuedValuedPath, visitBasicValuedPath, visitBetweenPredicate, visitBinaryArithmeticExpression, visitBooleanExpressionPredicate, visitByUnit, visitCastTarget, visitCoalesce, visitCollation, visitComparisonPredicate, visitCorrelation, visitCrossJoin, visitCteContainer, visitCteStatement, visitCycleColumns, visitDeleteStatement, visitDiscriminatorPath, visitDistinct, visitDurationUnit, visitDynamicInstantiation, visitElementAggregateFunction, visitEmbeddableValuedPath, visitEntityTypeLiteralExpression, visitEntityValuedPath, visitEnumLiteral, visitEvery, visitExistsPredicate, visitExtractUnit, visitFetches, visitFetchExpression, visitFieldLiteral, visitFkExpression, visitFormat, visitFromClause, visitFullyQualifiedClass, visitFunction, visitGroupByClause, visitGroupedPredicate, visitHavingClause, visitHqlNumericLiteral, visitIdentifierFetch, visitIndexAggregateFunction, visitIndexedPluralAccessPath, visitInListPredicate, visitInsertionTargetPaths, visitInsertSelectStatement, visitInsertValuesStatement, visitInSubQueryPredicate, visitIsEmptyPredicate, visitIsNullPredicate, visitIsTruePredicate, visitJpaCriteriaParameter, visitJunctionPredicate, visitLikePredicate, visitLiteral, visitMapEntryFunction, visitMemberOfPredicate, visitModifiedSubQueryExpression, visitNamedParameterExpression, visitNegatedPredicate, visitNestedFetches, visitNestedTopLevelPredicate, visitNonAggregatedCompositeValuedPath, visitOffsetExpression, visitOrderByClause, visitOrderByOffsetAndFetch, visitOver, visitOverflow, visitParameterizedEntityTypeExpression, visitPluralAttributeSizeFunction, visitPluralPartJoin, visitPluralValuedPath, visitPositionalParameterExpression, visitQualifiedAttributeJoin, visitQualifiedCteJoin, visitQualifiedDerivedJoin, visitQualifiedEntityJoin, visitQueryGroup, visitQueryPart, visitQuerySpec, visitRootCte, visitRootDerived, visitRootPath, visitSearchBySpecifications, visitSearchedCaseExpression, visitSelectClause, visitSelection, visitSelection, visitSelectStatement, visitSimpleCaseExpression, visitSortSpecification, visitStar, visitSubQueryExpression, visitSummarization, visitToDuration, visitTreatedPath, visitTrimSpecification, visitTuple, visitUnaryOperationExpression, visitUpdateStatement, visitValues, visitWithInferredType
-
Methods inherited from class org.hibernate.query.sqm.spi.BaseSemanticQueryWalker
consumeAttributeJoin, consumeCrossJoin, consumeCteJoin, consumeDerivedJoin, consumeEntityJoin, consumeExplicitJoin, consumeExplicitJoins, consumePluralPartJoin, consumeTreat, visitAssignment, visitJpaCompoundSelection, visitSelectQuery, visitWindow
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.sql.results.graph.DomainResultCreationState
forceIdentifierSelection, getSqlAliasBaseManager, visitDiscriminatorFetch
-
Methods inherited from interface org.hibernate.sql.ast.spi.FromClauseAccess
findTableGroupForGetOrCreate, getTableGroup, resolveTableGroup
-
Methods inherited from interface org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators
getColumnLength, getColumnPrecision, getColumnScale, getDefaultTimeZoneStorageStrategy, getDefaultZonedTimeSqlType, getDefaultZonedTimestampSqlType, getEnumeratedType, getExplicitJdbcTypeCode, getJdbcType, getPreferredSqlTypeCodeForArray, getPreferredSqlTypeCodeForInstant, getTemporalPrecision, isLob, isNationalized, resolveJdbcTypeCode
-
Methods inherited from interface org.hibernate.query.sqm.SemanticQueryWalker
visitAssignment, visitBagJoin, visitCorrelatedBagJoin, visitCorrelatedCrossJoin, visitCorrelatedEntityJoin, visitCorrelatedListJoin, visitCorrelatedMapJoin, visitCorrelatedPluralPartJoin, visitCorrelatedRoot, visitCorrelatedRootJoin, visitCorrelatedSetJoin, visitCorrelatedSingularJoin, visitJpaCompoundSelection, visitListJoin, visitMapJoin, visitSetJoin, visitSingularJoin, visitWindow
-
-
-
-
Constructor Detail
-
MultiTableSqmMutationConverter
public MultiTableSqmMutationConverter(EntityMappingType mutatingEntityDescriptor, SqmStatement<?> statement, SqmRoot<?> sqmRoot, DomainParameterXref domainParameterXref, QueryOptions queryOptions, LoadQueryInfluencers loadQueryInfluencers, QueryParameterBindings domainParameterBindings, SqlAstCreationContext creationContext)
-
MultiTableSqmMutationConverter
public MultiTableSqmMutationConverter(EntityMappingType mutatingEntityDescriptor, SqmStatement<?> statement, SqmRoot<?> sqmRoot, String sourceAlias, DomainParameterXref domainParameterXref, QueryOptions queryOptions, LoadQueryInfluencers loadQueryInfluencers, QueryParameterBindings domainParameterBindings, SqlAstCreationContext creationContext)
-
-
Method Detail
-
pruneTableGroupJoins
public void pruneTableGroupJoins()
- Overrides:
pruneTableGroupJoins
in classBaseSqmToSqlAstConverter<Statement>
-
getMutatingEntityDescriptor
public EntityMappingType getMutatingEntityDescriptor()
-
getMutatingTableGroup
public TableGroup getMutatingTableGroup()
-
getProcessingStateStack
public Stack<SqlAstProcessingState> getProcessingStateStack()
- Overrides:
getProcessingStateStack
in classBaseSqmToSqlAstConverter<Statement>
-
visitSetClause
public void visitSetClause(SqmSetClause setClause, Consumer<Assignment> assignmentConsumer, MultiTableSqmMutationConverter.SqmParameterResolutionConsumer parameterResolutionConsumer)
Specialized hook to visit the assignments defined by the update SQM.
-
visitSetClause
public List<Assignment> visitSetClause(SqmSetClause setClause)
- Specified by:
visitSetClause
in interfaceSemanticQueryWalker<Object>
- Overrides:
visitSetClause
in classBaseSqmToSqlAstConverter<Statement>
-
visitWhereClause
public Predicate visitWhereClause(SqmWhereClause sqmWhereClause, Consumer<ColumnReference> restrictionColumnReferenceConsumer, MultiTableSqmMutationConverter.SqmParameterResolutionConsumer parameterResolutionConsumer)
-
visitWhereClause
public Predicate visitWhereClause(SqmWhereClause whereClause)
- Specified by:
visitWhereClause
in interfaceSemanticQueryWalker<Object>
- Overrides:
visitWhereClause
in classBaseSemanticQueryWalker
-
consumeSqmParameter
protected Expression consumeSqmParameter(SqmParameter<?> sqmParameter, MappingModelExpressible<?> valueMapping, BiConsumer<Integer,JdbcParameter> jdbcParameterConsumer)
- Overrides:
consumeSqmParameter
in classBaseSqmToSqlAstConverter<Statement>
-
-