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 Expression
resolveSqlExpression
(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. -
createColumnReferenceKey
static SqlExpressionResolver.ColumnReferenceKey createColumnReferenceKey(TableReference tableReference, String columnExpression, JdbcMapping jdbcMapping) Helper for generating an expression key for a column reference. -
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
-