Package org.hibernate.query.sqm.function
Class SelfRenderingFunctionSqlAstExpression<T>
java.lang.Object
org.hibernate.query.sqm.function.SelfRenderingFunctionSqlAstExpression<T>
- All Implemented Interfaces:
JdbcMappingContainer
,SqlExpressible
,DomainResultProducer<T>
,SqlSelectionProducer
,Expression
,FunctionExpression
,SelfRenderingExpression
,SqlAstNode
- Direct Known Subclasses:
SelfRenderingAggregateFunctionSqlAstExpression
,SelfRenderingWindowFunctionSqlAstExpression
public class SelfRenderingFunctionSqlAstExpression<T>
extends Object
implements SelfRenderingExpression, SqlExpressible, DomainResultProducer<T>, FunctionExpression
Representation of a function call in the SQL AST for impls that know how to
render themselves.
-
Constructor Summary
ConstructorsConstructorDescriptionSelfRenderingFunctionSqlAstExpression
(String functionName, FunctionRenderer renderer, List<? extends SqlAstNode> sqlAstArguments, @Nullable ReturnableType<T> type, @Nullable JdbcMappingContainer expressible) -
Method Summary
Modifier and TypeMethodDescriptionvoid
applySqlSelections
(DomainResultCreationState creationState) Used when this producer is a selection in a sub-query.createDomainResult
(String resultVariable, DomainResultCreationState creationState) Produce the domain querycreateSqlSelection
(int jdbcPosition, int valuesArrayPosition, JavaType javaType, boolean virtual, TypeConfiguration typeConfiguration) Create a SqlSelection for the given JDBC ResultSet positionint
forEachJdbcType
(int offset, IndexedConsumer<JdbcMapping> action) Visit each JdbcMapping starting from the given offsetList<? extends SqlAstNode>
The type for this expressionAnything that is expressible at the SQL AST level would be of basic type.void
renderToSql
(SqlAppender sqlAppender, SqlAstTranslator<?> walker, SessionFactoryImplementor sessionFactory) 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.ast.tree.expression.Expression
createDomainResultSqlSelection, getColumnReference
Methods inherited from interface org.hibernate.metamodel.mapping.JdbcMappingContainer
forEachJdbcType, getJdbcTypeCount, getSingleJdbcMapping
Methods inherited from interface org.hibernate.sql.ast.tree.expression.SelfRenderingExpression
accept
Methods inherited from interface org.hibernate.metamodel.mapping.SqlExpressible
getJdbcMapping
-
Constructor Details
-
SelfRenderingFunctionSqlAstExpression
public SelfRenderingFunctionSqlAstExpression(String functionName, FunctionRenderer renderer, List<? extends SqlAstNode> sqlAstArguments, @Nullable ReturnableType<T> type, @Nullable JdbcMappingContainer expressible)
-
-
Method Details
-
getFunctionName
- Specified by:
getFunctionName
in interfaceFunctionExpression
-
getArguments
- Specified by:
getArguments
in interfaceFunctionExpression
-
getExpressionType
Description copied from interface:Expression
The type for this expression- Specified by:
getExpressionType
in interfaceExpression
-
createSqlSelection
public SqlSelection createSqlSelection(int jdbcPosition, int valuesArrayPosition, JavaType javaType, boolean virtual, TypeConfiguration typeConfiguration) Description copied from interface:SqlSelectionProducer
Create a SqlSelection for the given JDBC ResultSet position- Specified by:
createSqlSelection
in interfaceExpression
- Specified by:
createSqlSelection
in interfaceSqlSelectionProducer
- Parameters:
jdbcPosition
- The index position used to read values from JDBCvaluesArrayPosition
- The position in our "current JDBC values array"javaType
- The descriptor for the Java type to read the value asvirtual
- Whether the select is virtual or real. SeeSqlSelection.isVirtual()
typeConfiguration
- The associated TypeConfiguration
-
createDomainResult
public DomainResult<T> createDomainResult(String resultVariable, DomainResultCreationState creationState) Description copied from interface:DomainResultProducer
Produce the domain query- Specified by:
createDomainResult
in interfaceDomainResultProducer<T>
-
renderToSql
public void renderToSql(SqlAppender sqlAppender, SqlAstTranslator<?> walker, SessionFactoryImplementor sessionFactory) - Specified by:
renderToSql
in interfaceSelfRenderingExpression
-
getJdbcMapping
Description copied from interface:SqlExpressible
Anything that is expressible at the SQL AST level would be of basic type.- Specified by:
getJdbcMapping
in interfaceSqlExpressible
-
applySqlSelections
Description copied from interface:DomainResultProducer
Used when this producer is a selection in a sub-query. The DomainResult is only needed for root query of a SELECT statement. This default impl assumes this producer is a true (Sql)Expression- Specified by:
applySqlSelections
in interfaceDomainResultProducer<T>
-
forEachJdbcType
Description copied from interface:JdbcMappingContainer
Visit each JdbcMapping starting from the given offset- Specified by:
forEachJdbcType
in interfaceJdbcMappingContainer
-