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
-
Methods inherited from class org.hibernate.query.sqm.sql.BaseSqmToSqlAstConverter
addVersionedAssignment, applyCollectionFilterPredicates, 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, visitIdentifierFetch, visitIndexAggregateFunction, visitIndexedPluralAccessPath, visitInListPredicate, visitInsertionTargetPaths, visitInsertSelectStatement, visitInsertValuesStatement, visitInSubQueryPredicate, visitIsEmptyPredicate, visitIsNullPredicate, 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, getServiceRegistry, 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, 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>
-
visitInsertionTargetPaths
public BaseSqmToSqlAstConverter.AdditionalInsertValues visitInsertionTargetPaths(BiConsumer<Assignable,List<ColumnReference>> targetColumnReferenceConsumer, SqmInsertStatement<?> sqmStatement, EntityPersister entityDescriptor, TableGroup tableGroup, MultiTableSqmMutationConverter.SqmParameterResolutionConsumer parameterResolutionConsumer)
Specialized hook to visit the target paths defined by the insert SQM.
-
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>
-
-