Top Description Fields Constructors Methods
org.hibernate.dialect.function

public Class PostgreSQLTruncRoundFunction

extends AbstractSqmFunctionDescriptor
implements FunctionRenderer
Class Inheritance
All Implemented Interfaces
org.hibernate.query.sqm.function.FunctionRenderer, org.hibernate.query.sqm.function.FunctionRenderingSupport
Imports
java.util.List, org.hibernate.query.ReturnableType, org.hibernate.query.spi.QueryEngine, org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor, .FunctionRenderer, .FunctionRenderingSupport, .SelfRenderingSqmFunction, org.hibernate.query.sqm.produce.function.ArgumentTypesValidator, .StandardArgumentsValidators, .StandardFunctionArgumentTypeResolvers, .StandardFunctionReturnTypeResolvers, org.hibernate.query.sqm.tree.SqmTypedNode, org.hibernate.sql.ast.SqlAstTranslator, org.hibernate.sql.ast.spi.SqlAppender, org.hibernate.sql.ast.tree.SqlAstNode, org.hibernate.sql.ast.tree.expression.Expression, org.hibernate.type.descriptor.jdbc.JdbcType

Deprecated

as a consequence of FunctionRenderer being deprecated. See corresponding docs for further information.

PostgreSQL only supports the two-argument trunc and round functions with the following signatures:

This custom function falls back to using floor as a workaround only when necessary, e.g. when there are 2 arguments to the function and either:

Author
Marco Belladelli
See Also
PostgreSQL documentation

Field Summary

Modifier and TypeField and Description
private final boolean

Constructor Summary

AccessConstructor and Description
public
PostgreSQLTruncRoundFunction(String name, boolean supportsTwoArguments)

Method Summary

Modifier and TypeMethod and Description
protected <T> SelfRenderingSqmFunction<T>
generateSqmFunctionExpression(List<? extends SqmTypedNode<?>>
the arguments of the function invocation
arguments
,
ReturnableType<T>
the function return type as inferred from its usage
impliedResultType
,
QueryEngine queryEngine)

Implements abstract org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.generateSqmFunctionExpression.

Return an SQM node or subtree representing an invocation of this function with the given arguments.
public String
public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> arguments, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Implements org.hibernate.query.sqm.function.FunctionRenderer.render.

Inherited from org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor:
generateAggregateSqmExpressiongenerateOrderedSetAggregateSqmExpressiongenerateSqmAggregateFunctionExpressiongenerateSqmExpressiongenerateSqmOrderedSetAggregateFunctionExpressiongenerateSqmWindowFunctionExpressiongenerateWindowSqmExpressiongetArgumentsValidatorgetArgumentTypeResolvergetNamegetReturnSignaturegetReturnTypeResolvergetSignature

Field Detail

supportsTwoArgumentsback to summary
private final boolean supportsTwoArguments

Constructor Detail

PostgreSQLTruncRoundFunctionback to summary
public PostgreSQLTruncRoundFunction(String name, boolean supportsTwoArguments)

Method Detail

generateSqmFunctionExpressionback to summary
protected <T> SelfRenderingSqmFunction<T> generateSqmFunctionExpression(List<? extends SqmTypedNode<?>> arguments, ReturnableType<T> impliedResultType, QueryEngine queryEngine)

Implements abstract org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.generateSqmFunctionExpression.

Doc from org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.generateSqmFunctionExpression.

Return an SQM node or subtree representing an invocation of this function with the given arguments. This method may be overridden in the case of function descriptors that wish to customize creation of the node.

Parameters
arguments:List<? extends SqmTypedNode<?>>

the arguments of the function invocation

impliedResultType:ReturnableType<T>

the function return type as inferred from its usage

Annotations
@Override
getArgumentListSignatureback to summary
public String getArgumentListSignature()

Overrides org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor.getArgumentListSignature.

Annotations
@Override
renderback to summary
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> arguments, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Implements org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override