Top Inners Fields Constructors Methods
org.hibernate.query.sqm.sql

public abstract Class BaseSqmToSqlAstConverter<T extends org.hibernate.sql.ast.tree.Statement>

extends BaseSemanticQueryWalker
implements SqmTranslator<T extends Statement>, DomainResultCreationState, JdbcTypeIndicators
Class Inheritance
All Implemented Interfaces
org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators, org.hibernate.sql.results.graph.DomainResultCreationState, org.hibernate.query.sqm.sql.SqmTranslator, org.hibernate.query.sqm.spi.JdbcParameterBySqmParameterAccess, org.hibernate.sql.ast.spi.FromClauseAccess, org.hibernate.query.sqm.sql.SqmToSqlAstConverter, org.hibernate.sql.ast.spi.SqlAstCreationState, org.hibernate.query.sqm.SemanticQueryWalker
Known Direct Subclasses
org.hibernate.query.sqm.sql.internal.StandardSqmTranslator, org.hibernate.dialect.SybaseSqmToSqlAstConverter, org.hibernate.query.sqm.mutation.internal.MultiTableSqmMutationConverter
Imports
jakarta.persistence.TemporalType, jakarta.persistence.metamodel.SingularAttribute, .Type, org.hibernate.HibernateException, .Internal, .LockMode, org.hibernate.boot.model.process.internal.InferredBasicValueResolver, org.hibernate.dialect.Dialect, .DmlTargetColumnQualifierSupport, org.hibernate.dialect.function.TimestampaddFunction, .TimestampdiffFunction, org.hibernate.engine.FetchStyle, .FetchTiming, org.hibernate.engine.profile.FetchProfile, org.hibernate.engine.spi.LoadQueryInfluencers, .SessionFactoryImplementor, org.hibernate.generator.BeforeExecutionGenerator, .Generator, org.hibernate.graph.spi.AppliedGraph, org.hibernate.id.BulkInsertionCapableIdentifierGenerator, .CompositeNestedGeneratedValueGenerator, .OptimizableGenerator, org.hibernate.id.enhanced.Optimizer, org.hibernate.internal.FilterHelper, org.hibernate.internal.util.collections.CollectionHelper, .Stack, .StandardStack, org.hibernate.loader.MultipleBagFetchException, org.hibernate.metamodel.CollectionClassification, .MappingMetamodel, org.hibernate.metamodel.mapping.AssociationKey, .AttributeMapping, .BasicEntityIdentifierMapping, .BasicValuedMapping, .BasicValuedModelPart, .Bindable, .CollectionPart, .DiscriminatorConverter, .DiscriminatorMapping, .DiscriminatorValueDetails, .EmbeddableMappingType, .EmbeddableValuedModelPart, .EntityAssociationMapping, .EntityDiscriminatorMapping, .EntityIdentifierMapping, .EntityMappingType, .EntityValuedModelPart, .EntityVersionMapping, .ForeignKeyDescriptor, .JdbcMapping, .JdbcMappingContainer, .MappingModelExpressible, .MappingType, .ModelPart, .ModelPartContainer, .PluralAttributeMapping, .Restrictable, .SelectableMapping, .SelectableMappings, .SoftDeleteMapping, .SqlExpressible, .SqlTypedMapping, .ValueMapping, .ValuedModelPart, org.hibernate.metamodel.mapping.internal.BasicValuedCollectionPart, .EntityCollectionPart, .ManyToManyCollectionPart, .OneToManyCollectionPart, .SqlTypedMappingImpl, .ToOneAttributeMapping, org.hibernate.metamodel.mapping.ordering.OrderByFragment, org.hibernate.metamodel.model.domain.BasicDomainType, .EmbeddableDomainType, .EntityDomainType, .PersistentAttribute, .PluralPersistentAttribute, org.hibernate.metamodel.model.domain.internal.AnyDiscriminatorSqmPath, .AnyDiscriminatorSqmPathSource, .BasicSqmPathSource, .CompositeSqmPathSource, .EmbeddedSqmPathSource, .EntityDiscriminatorSqmPath, .EntityTypeImpl, org.hibernate.metamodel.spi.MappingMetamodelImplementor, org.hibernate.persister.entity.AbstractEntityPersister, .EntityNameUse, .EntityPersister, org.hibernate.query.BindableType, .QueryLogging, .ReturnableType, .SemanticException, .SortDirection, org.hibernate.query.criteria.JpaCteCriteriaAttribute, .JpaPath, .JpaSearchOrder, org.hibernate.query.derived.AnonymousTupleEntityValuedModelPart, .AnonymousTupleTableGroupProducer, .AnonymousTupleType, org.hibernate.query.spi.QueryEngine, .QueryOptions, .QueryParameterBinding, .QueryParameterBindings, .QueryParameterImplementor, org.hibernate.query.sqm.BinaryArithmeticOperator, .CastType, .ComparisonOperator, .DynamicInstantiationNature, .FetchClauseType, .InterpretationException, .SqmExpressible, .SqmPathSource, .SqmQuerySource, .TemporalUnit, .UnaryArithmeticOperator, org.hibernate.query.sqm.function.AbstractSqmSelfRenderingFunctionDescriptor, .SelfRenderingAggregateFunctionSqlAstExpression, .SelfRenderingFunctionSqlAstExpression, org.hibernate.query.sqm.internal.DomainParameterXref, .SqmMappingModelHelper, org.hibernate.query.sqm.mutation.internal.SqmInsertStrategyHelper, org.hibernate.query.sqm.produce.function.internal.PatternRenderer, org.hibernate.query.sqm.spi.BaseSemanticQueryWalker, org.hibernate.query.sqm.sql.internal.AnyDiscriminatorPathInterpretation, .BasicValuedPathInterpretation, .DiscriminatedAssociationPathInterpretation, .DiscriminatorPathInterpretation, .DomainResultProducer, .EmbeddableValuedExpression, .EmbeddableValuedPathInterpretation, .EntityValuedPathInterpretation, .NonAggregatedCompositeValuedPathInterpretation, .PluralValuedSimplePathInterpretation, .SqlAstProcessingStateImpl, .SqlAstQueryPartProcessingStateImpl, .SqmMapEntryResult, .SqmParameterInterpretation, .SqmPathInterpretation, org.hibernate.query.sqm.tree.SqmDmlStatement, .SqmJoinType, .SqmStatement, .SqmTypedNode, .SqmVisitableNode, org.hibernate.query.sqm.tree.cte.SqmCteContainer, .SqmCteStatement, .SqmCteTable, .SqmCteTableColumn, org.hibernate.query.sqm.tree.delete.SqmDeleteStatement, org.hibernate.query.sqm.tree.domain.AbstractSqmSpecificPluralPartPath, .NonAggregatedCompositeSimplePath, .SqmAnyValuedSimplePath, .SqmBasicValuedSimplePath, .SqmCorrelatedRootJoin, .SqmCorrelation, .SqmCteRoot, .SqmDerivedRoot, .SqmElementAggregateFunction, .SqmEmbeddedValuedSimplePath, .SqmEntityValuedSimplePath, .SqmFkExpression, .SqmIndexAggregateFunction, .SqmIndexedCollectionAccessPath, .SqmMapEntryReference, .SqmPath, .SqmPluralPartJoin, .SqmPluralValuedSimplePath, .SqmSimplePath, .SqmTreatedPath, org.hibernate.query.sqm.tree.expression.Conversion, .JpaCriteriaParameter, .SqmAliasedNodeRef, .SqmAny, .SqmAnyDiscriminatorValue, .SqmBinaryArithmetic, .SqmByUnit, .SqmCaseSearched, .SqmCaseSimple, .SqmCastTarget, .SqmCoalesce, .SqmCollation, .SqmCollectionSize, .SqmDistinct, .SqmDurationUnit, .SqmEnumLiteral, .SqmEvery, .SqmExpression, .SqmExpressionHelper, .SqmExtractUnit, .SqmFieldLiteral, .SqmFormat, .SqmFunction, .SqmHqlNumericLiteral, .SqmJpaCriteriaParameterWrapper, .SqmLiteral, .SqmLiteralEntityType, .SqmLiteralNull, .SqmModifiedSubQueryExpression, .SqmNamedParameter, .SqmOver, .SqmOverflow, .SqmParameter, .SqmParameterizedEntityType, .SqmPositionalParameter, .SqmStar, .SqmSummarization, .SqmToDuration, .SqmTrimSpecification, .SqmTuple, .SqmUnaryOperation, org.hibernate.query.sqm.tree.from.SqmAttributeJoin, .SqmCrossJoin, .SqmCteJoin, .SqmDerivedJoin, .SqmEntityJoin, .SqmFrom, .SqmFromClause, .SqmJoin, .SqmRoot, org.hibernate.query.sqm.tree.insert.SqmInsertSelectStatement, .SqmInsertStatement, .SqmInsertValuesStatement, .SqmValues, org.hibernate.query.sqm.tree.predicate.SqmBetweenPredicate, .SqmBooleanExpressionPredicate, .SqmComparisonPredicate, .SqmEmptinessPredicate, .SqmExistsPredicate, .SqmGroupedPredicate, .SqmInListPredicate, .SqmInSubQueryPredicate, .SqmJunctionPredicate, .SqmLikePredicate, .SqmMemberOfPredicate, .SqmNegatedPredicate, .SqmNullnessPredicate, .SqmPredicate, .SqmTruthnessPredicate, .SqmWhereClause, org.hibernate.query.sqm.tree.select.SqmAliasedNode, .SqmDynamicInstantiation, .SqmDynamicInstantiationArgument, .SqmDynamicInstantiationTarget, .SqmJpaCompoundSelection, .SqmOrderByClause, .SqmQueryGroup, .SqmQueryPart, .SqmQuerySpec, .SqmSelectClause, .SqmSelectQuery, .SqmSelectStatement, .SqmSelectableNode, .SqmSelection, .SqmSortSpecification, .SqmSubQuery, org.hibernate.query.sqm.tree.update.SqmAssignment, .SqmSetClause, .SqmUpdateStatement, org.hibernate.spi.NavigablePath, org.hibernate.sql.ast.Clause, .SqlAstJoinType, .SqlTreeCreationException, .SqlTreeCreationLogger, org.hibernate.sql.ast.spi.FromClauseAccess, .SqlAliasBase, .SqlAliasBaseGenerator, .SqlAliasBaseManager, .SqlAstCreationContext, .SqlAstCreationState, .SqlAstProcessingState, .SqlAstQueryPartProcessingState, .SqlExpressionResolver, .SqlSelection, org.hibernate.sql.ast.tree.SqlAstNode, .Statement, org.hibernate.sql.ast.tree.cte.CteColumn, .CteContainer, .CteObject, .CteStatement, .CteTable, .CteTableGroup, .SearchClauseSpecification, org.hibernate.sql.ast.tree.delete.DeleteStatement, org.hibernate.sql.ast.tree.expression.Any, .BinaryArithmeticExpression, .CaseSearchedExpression, .CaseSimpleExpression, .CastTarget, .Collation, .ColumnReference, .Distinct, .Duration, .DurationUnit, .EntityTypeLiteral, .Every, .Expression, .ExtractUnit, .Format, .JdbcLiteral, .JdbcParameter, .Literal, .ModifiedSubQueryExpression, .Over, .Overflow, .QueryLiteral, .QueryTransformer, .SelfRenderingExpression, .SelfRenderingSqlFragmentExpression, .SqlSelectionExpression, .SqlTuple, .SqlTupleContainer, .Star, .Summarization, .TrimSpecification, .UnaryOperation, .UnparsedNumericLiteral, org.hibernate.sql.ast.tree.from.CorrelatedPluralTableGroup, .CorrelatedTableGroup, .FromClause, .NamedTableReference, .PluralTableGroup, .QueryPartTableGroup, .QueryPartTableReference, .TableGroup, .TableGroupJoin, .TableGroupJoinProducer, .TableReference, org.hibernate.sql.ast.tree.insert.InsertSelectStatement, .InsertStatement, .Values, org.hibernate.sql.ast.tree.predicate.BetweenPredicate, .BooleanExpressionPredicate, .ComparisonPredicate, .ExistsPredicate, .GroupedPredicate, .InListPredicate, .InSubQueryPredicate, .Junction, .LikePredicate, .NegatedPredicate, .NullnessPredicate, .Predicate, .PredicateCollector, .SelfRenderingPredicate, .ThruthnessPredicate, org.hibernate.sql.ast.tree.select.QueryGroup, .QueryPart, .QuerySpec, .SelectClause, .SelectStatement, .SortSpecification, org.hibernate.sql.ast.tree.update.Assignable, .Assignment, .UpdateStatement, org.hibernate.sql.exec.internal.AbstractJdbcParameter, .JdbcParameterImpl, .JdbcParametersImpl, .SqlTypedMappingJdbcParameter, .VersionTypeSeedParameterSpecification, org.hibernate.sql.exec.spi.ExecutionContext, .JdbcParameterBindings, .JdbcParameters, org.hibernate.sql.results.graph.DomainResult, .DomainResultCreationState, .EntityGraphTraversalState, .Fetch, .FetchParent, .Fetchable, .FetchableContainer, org.hibernate.sql.results.graph.collection.internal.EagerCollectionFetch, org.hibernate.sql.results.graph.entity.EntityResultGraphNode, org.hibernate.sql.results.graph.instantiation.internal.DynamicInstantiation, org.hibernate.sql.results.graph.internal.ImmutableFetchList, org.hibernate.sql.results.internal.SqlSelectionImpl, .StandardEntityGraphTraversalStateImpl, org.hibernate.type.BasicType, .BottomType, .JavaObjectType, .SqlTypes, org.hibernate.type.descriptor.converter.spi.BasicValueConverter, org.hibernate.type.descriptor.java.JavaType, .JavaTypeHelper, org.hibernate.type.descriptor.jdbc.ArrayJdbcType, .JdbcType, .JdbcTypeIndicators, org.hibernate.type.internal.BasicTypeImpl, org.hibernate.type.spi.TypeConfiguration, org.hibernate.usertype.UserVersionType, org.hibernate.usertype.internal.AbstractTimeZoneStorageCompositeUserType, org.jboss.logging.Logger, java.math.BigDecimal, .BigInteger, java.sql.PreparedStatement, .SQLException, java.util.AbstractMap, .ArrayList, .Arrays, .Collection, .Collections, .HashMap, .HashSet, .IdentityHashMap, .Iterator, .LinkedHashMap, .List, .Locale, .Map, .Set, java.util.function.BiConsumer, .Consumer, .Function, .Supplier

Author
Steve Ebersole

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
private static class
protected static class
private static class
public static interface
protected static class

Field Summary

Modifier and TypeField and Description
protected Predicate
private Expression
private SqmExpressible<?>
private Expression
private SqmByUnit
private final Map<NavigablePath, PredicateCollector>
private boolean
private final SqlAstCreationContext
private CteContainer
private Map<String, String>
cteNameMapping

A map from SqmCteTable#getCteName() to the final SQL name.

private String
private final Stack<Clause>
private SqmJoin<?, ?>
private ForeignKeyDescriptor.Nature
private SqmQueryPart<?>
private SqmStatement<?>
private boolean
private final MappingMetamodel
private final QueryParameterBindings
private final DomainParameterXref
private final List<DomainResult<?>>
private final EntityGraphTraversalState
private int
private final Stack<FromClauseIndex>
private Supplier<MappingModelExpressible<?>>
private final Stack<Supplier<T>>
private boolean
private boolean
private boolean
private final JdbcParameters
private final Map<SqmParameter<?>, List<List<JdbcParameter>>>
private final Map<JpaCriteriaParameter<?>, SqmJpaCriteriaParameterWrapper<?>>
private final boolean
private FromClauseIndex
private SqlAstProcessingState
private final LoadQueryInfluencers
private static final Logger
private boolean
private List<Map.Entry<OrderByFragment, TableGroup>>
private final Stack<SqlAstProcessingState>
private final QueryOptions
private final Stack<List<E>>
private boolean
private final SqlAliasBaseManager
private final Map<SqmParameter<?>, MappingModelExpressible<?>>
private final SqmStatement<?>
private final Map<TableGroup, Map<String, EntityNameUse>>
private Map<NavigablePath, Map.Entry<Integer, List<SqlSelection>>>
private boolean
private final Set<AssociationKey>

Constructor Summary

AccessConstructor and Description
public
BaseSqmToSqlAstConverter(SqlAstCreationContext creationContext, SqmStatement<?> statement, QueryOptions queryOptions, LoadQueryInfluencers loadQueryInfluencers, DomainParameterXref domainParameterXref, QueryParameterBindings domainParameterBindings, boolean deduplicateSelectionItems)

Method Summary

Modifier and TypeMethod and Description
private void
addAssignment(List<Assignment> assignments, AggregateColumnAssignmentHandler aggregateColumnAssignmentHandler, ColumnReference columnReference, Expression valueExpression)

private void
public void
addVersionedAssignment(Consumer<Assignment> assignmentConsumer, SqmUpdateStatement<?> sqmStatement)

protected void
private void
applyOrdering(TableGroup tableGroup, PluralAttributeMapping pluralAttributeMapping)

private void
applyOrdering(TableGroup tableGroup, OrderByFragment orderByFragment)

pack-priv Expression
private <J> BasicType<J>
basicType(Class<J> javaType)

private Fetch
buildFetch(NavigablePath fetchablePath, FetchParent fetchParent, Fetchable fetchable, FetchTiming fetchTiming, boolean joined, String alias)

private static boolean
canUseInferredType(JdbcMapping bindJdbcMapping, JdbcMapping inferredJdbcMapping)

private <X> X
cleanly(Supplier<X> supplier)

private TableGroup
consumeAttributeJoin(SqmAttributeJoin<?, ?> sqmJoin, TableGroup lhsTableGroup, TableGroup ownerTableGroup, boolean transitive)

private Predicate
private Predicate
private TableGroup
consumeCrossJoin(SqmCrossJoin<?> sqmJoin, TableGroup lhsTableGroup, boolean transitive)

private TableGroup
consumeCteJoin(SqmCteJoin<?> sqmJoin, TableGroup parentTableGroup, boolean transitive)

private TableGroup
consumeDerivedJoin(SqmDerivedJoin<?> sqmJoin, TableGroup parentTableGroup, boolean transitive)

private TableGroup
consumeEntityJoin(SqmEntityJoin<?> sqmJoin, TableGroup lhsTableGroup, boolean transitive)

protected TableGroup
consumeExplicitJoin(SqmJoin<?, ?> sqmJoin, TableGroup lhsTableGroup, TableGroup ownerTableGroup, boolean transitive)

protected void
consumeExplicitJoins(SqmFrom<?, ?> sqmFrom, TableGroup lhsTableGroup)

protected void
protected void
private void
consumeJoins(SqmRoot<?> sqmRoot, FromClauseIndex fromClauseIndex, TableGroup tableGroup)

private TableGroup
consumePluralPartJoin(SqmPluralPartJoin<?, ?> sqmJoin, TableGroup lhsTableGroup, boolean transitive)

protected Expression
protected Expression
consumeSqmParameter(SqmParameter<?> sqmParameter, MappingModelExpressible<?> valueMapping, BiConsumer<Integer, JdbcParameter> jdbcParameterConsumer)

protected Expression
private boolean
private ModifiedSubQueryExpression.Modifier
private Expression
createCaseExpression(SqmPath<?> lhs, EntityDomainType<?> treatTarget, Expression expression)

protected Expression
protected CteColumn
createCteColumn(String cteColumn, JdbcMapping jdbcMapping)

private TableGroup
createCteTableGroup(String cteName, NavigablePath navigablePath, String explicitAlias, boolean canUseInnerJoins)

private Fetch
createFetch(FetchParent fetchParent, Fetchable fetchable, Boolean isKeyFetchable)

protected Expression
createLateralJoinExpression(AbstractSqmSpecificPluralPartPath<?> pluralPartPath, boolean index, String functionName)

protected Expression
createMinOrMaxIndexOrElement(AbstractSqmSpecificPluralPartPath<?> pluralPartPath, boolean index, String functionName)

private TableGroup
createTableGroup(TableGroup parentTableGroup, SqmPath<?> joinedPath, boolean allowLeftJoins)

private Predicate
private Predicate
createTreatTypeRestriction(SqmPath<?> lhs, Set<String> subclassEntityNames)

private Predicate
createTreatTypeRestriction(Expression typeExpression, Set<String> subclassEntityNames, boolean allowNulls)

private QueryPart
private QuerySpec
protected BaseSqmToSqlAstConverter.SqmAliasedNodeCollector
private MappingModelExpressible<?>
private Set<String>
protected SqmFrom<?, ?>
public MappingModelExpressible<?>
private MappingModelExpressible<?>
determineValueMapping(SqmExpression<?> sqmExpression, FromClauseIndex fromClauseIndex)

protected MappingModelExpressible<?>
private void
public List<Expression>
private Expression
extractEpoch(Expression intervalExpression)

public TableGroup
findTableGroup(NavigablePath navigablePath)

Implements org.hibernate.sql.ast.spi.FromClauseAccess.findTableGroup.

Find a TableGroup by the NavigablePath it is registered under, and if not found on the current from clause level, ask the parent.
private TableGroup
public TableGroup
findTableGroupOnCurrentFromClause(NavigablePath navigablePath)

Implements org.hibernate.sql.ast.spi.FromClauseAccess.findTableGroupOnCurrentFromClause.

Find a TableGroup in this from clause without consulting parents by the NavigablePath it is registered under.
protected void
private String
private static Expression
private TableGroup
getActualTableGroup(TableGroup lhsTableGroup, SqmPath<?> path)

private JdbcMappingContainer
public SqlAstCreationContext
private String
getCteName(SqmCteTable<?> sqmCteTable)

public Stack<Clause>
public ForeignKeyDescriptor.Nature
getCurrentlyResolvingForeignKeyPart()

Implements org.hibernate.sql.results.graph.DomainResultCreationState.getCurrentlyResolvingForeignKeyPart.

Returns the part of the foreign key that is currently being resolved, or null if no foreign key is currently being resolved.
public SqlAstProcessingState
public SqmQueryPart<?>
public Dialect
private MappingModelExpressible<?>
getElementExpressible(MappingModelExpressible<?> mappingModelExpressible)

private BasicValuedMapping
public FromClauseAccess
public FromClauseIndex
protected MappingModelExpressible<?>
public Map<SqmParameter<?>, List<List<JdbcParameter>>>
getJdbcParamsBySqmParam()

Implements org.hibernate.query.sqm.spi.JdbcParameterBySqmParameterAccess.getJdbcParamsBySqmParam.

The mapping between an SqmParameter and all of its JDBC parameters
private MappingModelExpressible<?>
getKeyExpressible(JdbcMappingContainer mappingModelExpressible)

private Literal
public LoadQueryInfluencers
private TableGroupJoin
private TableGroup
getPluralPartTableGroup(PluralTableGroup pluralTableGroup, SqmPathSource<?> pathSource)

public int
getPreferredSqlTypeCodeForBoolean()

Overrides default org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators.getPreferredSqlTypeCodeForBoolean.

When mapping a boolean type to the database what is the preferred SQL type code to use?
public int
getPreferredSqlTypeCodeForDuration()

Overrides default org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators.getPreferredSqlTypeCodeForDuration.

When mapping a duration type to the database what is the preferred SQL type code to use?
public int
getPreferredSqlTypeCodeForUuid()

Overrides default org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators.getPreferredSqlTypeCodeForUuid.

When mapping an uuid type to the database what is the preferred SQL type code to use?
protected Stack<SqlAstProcessingState>
public QueryOptions
public SqlAliasBaseGenerator
public SqlAstCreationState
public SqlExpressionResolver
private SqmParameter<?>
private SqmParameter<?>
public Map<SqmParameter<?>, MappingModelExpressible<?>>
protected SqmStatement<?>
private Summarization.Kind
public TypeConfiguration
getTypeConfiguration()

Implements org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators.getTypeConfiguration.

Provides access to the TypeConfiguration for access to various type system related registries.
private <N extends Number> Expression
private void
handleTypeComparison(Expression lhs, Expression rhs, boolean inclusive)

private void
handleTypeComparison(DiscriminatorPathInterpretation<?> typeExpression, List<EntityTypeLiteral> literalExpressions, boolean inclusive)

private void
private static boolean
hasJoins(TableGroup rootTableGroup)

private static boolean
hasJoins(List<TableGroupJoin> tableGroupJoins)

private static JdbcMappingContainer
private int
indexOfExpression(List<? extends SqmAliasedNode<?>> selections, SqmExpression<?> node)

private int
indexOfExpression(int offset, List<? extends SqmAliasedNode<?>> selections, SqmExpression<?> node)

private UnaryArithmeticOperator
private <X> JavaType<X>
public boolean
isAssociationKeyVisited(AssociationKey associationKey)

Overrides default org.hibernate.sql.results.graph.DomainResultCreationState.isAssociationKeyVisited.

Checks whether the given circularityKey is registered
private boolean
pack-priv static boolean
private boolean
public boolean
public boolean
private static Boolean
protected void
private void
prepareForSelection(SqmPath<?> selectionPath)

private <X> X
prepareReusablePath(SqmPath<?> sqmPath, Supplier<X> supplier)

private <X> X
prepareReusablePath(SqmPath<?> sqmPath, FromClauseIndex fromClauseIndex, Supplier<X> supplier, boolean allowLeftJoins)

private TableGroup
prepareReusablePath(FromClauseIndex fromClauseIndex, JpaPath<?> path, Consumer<TableGroup> implicitJoinChecker)

private InListPredicate
private InListPredicate
private InListPredicate
private InListPredicate
processInSingleParameter(SqmInListPredicate<?> sqmPredicate, SqmParameter<?> sqmParameter, QueryParameterImplementor<?> domainParam, QueryParameterBinding<?> domainParamBinding)

protected void
protected void
protected void
pushProcessingState(SqlAstProcessingState processingState, FromClauseIndex fromClauseIndex)

private static <T extends Enum<T>> QueryLiteral<T>
queryLiteral(SqmEnumLiteral<T> sqmEnumLiteral, TypeConfiguration typeConfiguration)

private void
registerEntityNameProjectionUsage(SqmPath<?> projectedPath, TableGroup tableGroup)

Registers EntityNameUse#PROJECTION entity name uses for all entity valued path subtypes.

public void
registerEntityNameUsage(TableGroup tableGroup, EntityNameUse entityNameUse, String hibernateEntityName)

Overrides default org.hibernate.sql.ast.spi.SqlAstCreationState.registerEntityNameUsage.

This callback is for handling of filters and is necessary to allow correct treat optimizations.
private void
registerEntityNameUsage(TableGroup tableGroup, EntityNameUse entityNameUse, String hibernateEntityName, boolean projection)

public void
private void
registerPathAttributeEntityNameUsage(SqmPath<?> sqmPath, TableGroup tableGroup)

If the SqmPath has a PersistentAttribute as SqmPathSource, this method determines the declaring entity type of the attribute and register a EntityNameUse#EXPRESSION for the given table group.

private void
private void
private void
public void
private void
registerSqmFromTableGroup(SqmFrom<?, ?> sqmFrom, TableGroup tableGroup)

public void
registerTableGroup(NavigablePath navigablePath, TableGroup tableGroup)

Implements org.hibernate.sql.ast.spi.FromClauseAccess.registerTableGroup.

Register a TableGroup under the given `navigablePath`.
protected void
protected void
public boolean
public void
removeVisitedAssociationKey(AssociationKey associationKey)

Overrides default org.hibernate.sql.results.graph.DomainResultCreationState.removeVisitedAssociationKey.

Removes the registration of a circularity detection key
private void
replaceJdbcParametersType(SqmParameter<?> sourceSqmParameter, List<SqmParameter<?>> sqmParameters, MappingModelExpressible<?> valueMapping)

private EntityPersister
private AbstractSqmSelfRenderingFunctionDescriptor
resolveFunction(String function)

Deprecated as a consequence of AbstractSqmSelfRenderingFunctionDescriptor being deprecated.
public MappingModelExpressible<?>
resolveFunctionImpliedReturnType()

Implements org.hibernate.query.sqm.sql.SqmToSqlAstConverter.resolveFunctionImpliedReturnType.

Returns the function return type implied from the context within which it is used.
protected Expression
resolveGroupOrOrderByExpression(SqmExpression<?> groupByClauseExpression)

private MappingModelExpressible<?>
private MappingModelExpressible<?>
public ModelPart
resolveModelPart(NavigablePath navigablePath)

Implements org.hibernate.sql.results.graph.DomainResultCreationState.resolveModelPart.

Resolve the ModelPart associated with a given NavigablePath.
private void
resolveSqmParameter(SqmParameter<?> expression, MappingModelExpressible<?> valueMapping, BiConsumer<Integer, JdbcParameter> jdbcParameterConsumer)

public void
public void
private boolean
shouldExplicitFetch(Integer maxDepth, Fetchable fetchable)

private static Boolean
public boolean
private TimestampaddFunction
timestampadd()

Deprecated as a consequence of TimestampaddFunction being deprecated.
private TimestampdiffFunction
timestampdiff()

Deprecated as a consequence of TimestampdiffFunction being deprecated.
private Expression
private Object
private Object
public SqmTranslation<T>
private void
upgradeToInnerJoinIfNeeded(TableGroup parentTableGroup, SqmPath<?> sqmPath, SqmPath<?> parentPath, FromClauseIndex fromClauseIndex)

private static void
public Object
public Expression
public Expression
public Expression
public Expression
public BetweenPredicate
public Object
public Object
public Object
public Object
public Object
public Object
public ComparisonPredicate
public Expression
public Expression
public CteContainer
public CteStatement
protected List<CteColumn>
public DeleteStatement
public Object
public Object
public Object
public DynamicInstantiation<?>
public Expression
public Expression
public Expression
public Expression
public Object
public Object
public Object
public Object
public ImmutableFetchList
visitFetches(FetchParent fetchParent)

Implements org.hibernate.sql.results.graph.DomainResultCreationState.visitFetches.

Visit fetches for the given parent.
public Expression
public Object
public Object
public Object
public Void
public Object
public Expression
public List<Expression>
public GroupedPredicate
public Predicate
public <N extends Number> Expression
public Fetch
public Expression
public Object
public Predicate
public BaseSqmToSqlAstConverter.AdditionalInsertValues
visitInsertionTargetPaths(BiConsumer<Assignable, List<ColumnReference>> targetColumnReferenceConsumer, SqmInsertStatement<?> sqmStatement, EntityPersister entityDescriptor, TableGroup rootTableGroup)

public InsertStatement
public InsertStatement
public InSubQueryPredicate
public Object
public NullnessPredicate
public Object
public Object
public Junction
public LikePredicate
public Expression
public Object
public Predicate
public Object
public Expression
public NegatedPredicate
public ImmutableFetchList
public Predicate
public Expression
public Expression
public Void
protected void
visitOrderByOffsetAndFetch(SqmQueryPart<?> sqmQueryPart, QueryPart sqlQueryPart)

public Object
public Object
public Expression
public Expression
public Object
public Expression
public Object
public Expression
public Object
public Expression
public Expression
public QueryGroup
public QueryPart
public QuerySpec
public Object
public Object
public Expression
protected List<SearchClauseSpecification>
visitSearchBySpecifications(CteTable cteTable, List<JpaSearchOrder> searchBySpecifications)

public CaseSearchedExpression
public SelectClause
public Void
public Void
visitSelection(int index, SqmSelection<?> sqmSelection)

public SelectStatement
public List<Assignment>
public CaseSimpleExpression
public SortSpecification
public Star
public SelectStatement
public Object
private Expression
visitTableGroup(TableGroup tableGroup, SqmFrom<?, ?> path)

public Object
public Expression
public Object
public Object
public Object
public UpdateStatement
public Values
private Predicate
private <X> X
public Object
visitWithInferredType(SqmVisitableNode node, Supplier<MappingModelExpressible<?>> inferredTypeAccess)

Implements org.hibernate.query.sqm.sql.SqmToSqlAstConverter.visitWithInferredType.

Visits the given node with the given inferred type access.
private BasicValuedMapping
private Expression
Inherited from org.hibernate.query.sqm.spi.BaseSemanticQueryWalker:
consumeAttributeJoinconsumeCrossJoinconsumeCteJoinconsumeDerivedJoinconsumeEntityJoinconsumeExplicitJoinconsumeExplicitJoinsconsumePluralPartJoinconsumeTreatvisitAssignmentvisitJpaCompoundSelectionvisitSelectQueryvisitWhereClausevisitWindow