Package org.hibernate.sql.ast.spi
Interface SqlExpressionResolver
- All Known Implementing Classes:
AbstractSqlAstQueryNodeProcessingStateImpl,BaseSqmToSqlAstConverter.DelegatingSqmAliasedNodeCollector,BaseSqmToSqlAstConverter.SqmAliasedNodePositionTracker,DomainResultCreationStateImpl,SqlAstProcessingStateImpl,SqlAstQueryNodeProcessingStateImpl,SqlAstQueryPartProcessingStateImpl
public interface SqlExpressionResolver
Resolution of a SqlSelection reference for a given SqlSelectable. Some
SqlSelectable are required to be qualified (e.g. a Column) - this is indicated
by the QualifiableSqlSelectable subtype. The NonQualifiableSqlSelectable
subtype indicates a SqlSelectable that does not require qualification (e.g. a
literal).
The point of this contract is to allow "unique-ing" of SqlSelectable references in a query to a single SqlSelection reference - effectively a caching of SqlSelection instances keyed by the SqlSelectable (+ qualifier when applicable) that it refers to.
Note also that the returns can be a specialized Expression represented by
SqlSelectionExpression
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptioncreateColumnReferenceKey(String columnExpression) createColumnReferenceKey(String tableExpression, String columnExpression, JdbcMapping jdbcMapping) Helper for generating an expression key for a column reference.createColumnReferenceKey(String tableExpression, SelectableMapping selectable) Convenience form for creating a key from table expression and SelectableMappingcreateColumnReferenceKey(String qualifier, SelectablePath selectablePath, JdbcMapping jdbcMapping) createColumnReferenceKey(TableReference tableReference, String columnExpression, JdbcMapping jdbcMapping) Helper for generating an expression key for a column reference.createColumnReferenceKey(TableReference tableReference, SelectableMapping selectable) Convenience form for creating a key from TableReference and SelectableMappingcreateColumnReferenceKey(TableReference tableReference, SelectablePath selectablePath, JdbcMapping jdbcMapping) createDiscriminatorColumnReferenceKey(TableReference tableReference, EntityDiscriminatorMapping discriminatorMapping) Convenience form for creating a key from TableReference and EntityDiscriminatorMappingresolveSqlExpression(SqlExpressionResolver.ColumnReferenceKey key, Function<SqlAstProcessingState, Expression> creator) Given a qualifier + a qualifiableSqlExpressible, resolve the (Sql)Expression reference.default ExpressionresolveSqlExpression(TableReference tableReference, SelectableMapping selectableMapping) resolveSqlSelection(Expression expression, JavaType<?> javaType, FetchParent fetchParent, TypeConfiguration typeConfiguration) Resolve the SqlSelection for the given expression
-
Method Details
-
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(String tableExpression, String columnExpression, JdbcMapping jdbcMapping) Helper for generating an expression key for a column reference.- See Also:
-
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(TableReference tableReference, String columnExpression, JdbcMapping jdbcMapping) Helper for generating an expression key for a column reference.- See Also:
-
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(TableReference tableReference, SelectablePath selectablePath, JdbcMapping jdbcMapping) -
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(String qualifier, SelectablePath selectablePath, JdbcMapping jdbcMapping) -
createColumnReferenceKey
-
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(String tableExpression, SelectableMapping selectable) Convenience form for creating a key from table expression and SelectableMapping -
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(TableReference tableReference, SelectableMapping selectable) Convenience form for creating a key from TableReference and SelectableMapping -
createDiscriminatorColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createDiscriminatorColumnReferenceKey(TableReference tableReference, EntityDiscriminatorMapping discriminatorMapping) Convenience form for creating a key from TableReference and EntityDiscriminatorMapping -
resolveSqlExpression
default Expression resolveSqlExpression(TableReference tableReference, SelectableMapping selectableMapping) -
resolveSqlExpression
Expression resolveSqlExpression(SqlExpressionResolver.ColumnReferenceKey key, Function<SqlAstProcessingState, Expression> creator) Given a qualifier + a qualifiableSqlExpressible, resolve the (Sql)Expression reference. -
resolveSqlSelection
SqlSelection resolveSqlSelection(Expression expression, JavaType<?> javaType, FetchParent fetchParent, TypeConfiguration typeConfiguration) Resolve the SqlSelection for the given expression
-