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 TypeMethodDescriptionvoidapplySqlSelections(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 positionintforEachJdbcType(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.voidrenderToSql(SqlAppender sqlAppender, SqlAstTranslator<?> walker, SessionFactoryImplementor sessionFactory) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.hibernate.sql.ast.tree.expression.Expression
createDomainResultSqlSelection, getColumnReferenceMethods inherited from interface org.hibernate.metamodel.mapping.JdbcMappingContainer
forEachJdbcType, getJdbcTypeCount, getSingleJdbcMappingMethods inherited from interface org.hibernate.sql.ast.tree.expression.SelfRenderingExpression
acceptMethods 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:
getFunctionNamein interfaceFunctionExpression
-
getArguments
- Specified by:
getArgumentsin interfaceFunctionExpression
-
getExpressionType
Description copied from interface:ExpressionThe type for this expression- Specified by:
getExpressionTypein interfaceExpression
-
createSqlSelection
public SqlSelection createSqlSelection(int jdbcPosition, int valuesArrayPosition, JavaType javaType, boolean virtual, TypeConfiguration typeConfiguration) Description copied from interface:SqlSelectionProducerCreate a SqlSelection for the given JDBC ResultSet position- Specified by:
createSqlSelectionin interfaceExpression- Specified by:
createSqlSelectionin 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:DomainResultProducerProduce the domain query- Specified by:
createDomainResultin interfaceDomainResultProducer<T>
-
renderToSql
public void renderToSql(SqlAppender sqlAppender, SqlAstTranslator<?> walker, SessionFactoryImplementor sessionFactory) - Specified by:
renderToSqlin interfaceSelfRenderingExpression
-
getJdbcMapping
Description copied from interface:SqlExpressibleAnything that is expressible at the SQL AST level would be of basic type.- Specified by:
getJdbcMappingin interfaceSqlExpressible
-
applySqlSelections
Description copied from interface:DomainResultProducerUsed 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:
applySqlSelectionsin interfaceDomainResultProducer<T>
-
forEachJdbcType
Description copied from interface:JdbcMappingContainerVisit each JdbcMapping starting from the given offset- Specified by:
forEachJdbcTypein interfaceJdbcMappingContainer
-