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

public Class ExtractFunction

extends AbstractSqmFunctionDescriptor
implements FunctionRenderer
Class Inheritance
All Implemented Interfaces
org.hibernate.query.sqm.function.FunctionRenderer, org.hibernate.query.sqm.function.FunctionRenderingSupport
Imports
org.hibernate.dialect.Dialect, org.hibernate.query.ReturnableType, .SemanticException, org.hibernate.query.sqm.TemporalUnit, .NodeBuilder, org.hibernate.query.spi.QueryEngine, org.hibernate.query.sqm.function.AbstractSqmFunctionDescriptor, .FunctionRenderer, .SelfRenderingSqmFunction, org.hibernate.query.sqm.produce.function.ArgumentTypesValidator, .StandardArgumentsValidators, .StandardFunctionArgumentTypeResolvers, .StandardFunctionReturnTypeResolvers, org.hibernate.query.sqm.produce.function.internal.PatternRenderer, org.hibernate.query.sqm.tree.SqmTypedNode, org.hibernate.query.sqm.tree.domain.SqmPath, org.hibernate.query.sqm.tree.expression.*, org.hibernate.sql.ast.SqlAstTranslator, org.hibernate.sql.ast.spi.SqlAppender, org.hibernate.sql.ast.tree.SqlAstNode, org.hibernate.sql.ast.tree.expression.ExtractUnit, org.hibernate.type.BasicType, org.hibernate.type.spi.TypeConfiguration, org.hibernate.usertype.internal.AbstractTimeZoneStorageCompositeUserType, java.time.ZoneOffset, java.util.Collections, .List

Deprecated

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

ANSI SQL-inspired extract() function, where the date/time fields are enumerated by TemporalUnit, and portability is achieved by delegating to Dialect#extractPattern(TemporalUnit).
Author
Gavin King

Field Summary

Modifier and TypeField and Description
private final Dialect

Constructor Summary

AccessConstructor and Description
public
ExtractFunction(Dialect dialect, TypeConfiguration typeConfiguration)

Method Summary

Modifier and TypeMethod and Description
private SelfRenderingSqmFunction<?>
extractDateOrTimeUsingCast(SqmExpression<?> expressionToExtract, ReturnableType<?> type, QueryEngine queryEngine)

private SelfRenderingSqmFunction<Long>
extractNanoseconds(SqmExpression<?> expressionToExtract, QueryEngine queryEngine)

private SelfRenderingSqmFunction<ZoneOffset>
extractOffsetUsingFormat(SqmExpression<?> expressionToExtract, QueryEngine queryEngine)

private SelfRenderingSqmFunction<Integer>
extractWeek(SqmExpression<?> expressionToExtract, SqmExtractUnit<?> field, TemporalUnit dayOf, QueryEngine queryEngine)

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> sqlAstArguments, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

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

private SelfRenderingSqmFunction<Long>
toLong(SqmExpression<?> arg, QueryEngine queryEngine)

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

Field Detail

dialectback to summary
private final Dialect dialect

Constructor Detail

ExtractFunctionback to summary
public ExtractFunction(Dialect dialect, TypeConfiguration typeConfiguration)

Method Detail

extractDateOrTimeUsingCastback to summary
private SelfRenderingSqmFunction<?> extractDateOrTimeUsingCast(SqmExpression<?> expressionToExtract, ReturnableType<?> type, QueryEngine queryEngine)
extractNanosecondsback to summary
private SelfRenderingSqmFunction<Long> extractNanoseconds(SqmExpression<?> expressionToExtract, QueryEngine queryEngine)
extractOffsetUsingFormatback to summary
private SelfRenderingSqmFunction<ZoneOffset> extractOffsetUsingFormat(SqmExpression<?> expressionToExtract, QueryEngine queryEngine)
extractWeekback to summary
private SelfRenderingSqmFunction<Integer> extractWeek(SqmExpression<?> expressionToExtract, SqmExtractUnit<?> field, TemporalUnit dayOf, QueryEngine queryEngine)
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> sqlAstArguments, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

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

Annotations
@Override
toLongback to summary
private SelfRenderingSqmFunction<Long> toLong(SqmExpression<?> arg, QueryEngine queryEngine)