Top Description Fields Constructors Methods
org.hibernate.query.sqm.function

public Class PatternBasedSqmFunctionDescriptor

extends AbstractSqmSelfRenderingFunctionDescriptor
Class Inheritance
Imports
org.hibernate.query.ReturnableType, org.hibernate.query.sqm.produce.function.ArgumentsValidator, .FunctionArgumentTypeResolver, .FunctionReturnTypeResolver, .StandardArgumentsValidators, org.hibernate.query.sqm.produce.function.internal.PatternRenderer, org.hibernate.sql.ast.SqlAstTranslator, org.hibernate.sql.ast.spi.SqlAppender, org.hibernate.sql.ast.tree.SqlAstNode, org.hibernate.sql.ast.tree.predicate.Predicate, org.hibernate.sql.ast.tree.select.SortSpecification, java.util.List

Deprecated

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

Support for HQL functions that have different representations in different SQL dialects, where the difference can be handled via a pattern template.

In HQL we might define a function concat(?1, ?2) to concatenate two strings p1 and p2. Dialects register different instances of this class using the same name (concat) but with different templates or patterns: (?1 || ?2) for Oracle, concat(?1, ?2) for MySQL, (?1 + ?2) for SQL Server. Each dialect defines a template as a string exactly as shown above, marking each function parameter with '?' followed by the parameter index. Parameters are indexed from 1. The last parameter may be a vararg, indicated with the syntax (?1 || ?2...).

Author
Alexey Loubyansky

Field Summary

Modifier and TypeField and Description
private final String
private final PatternRenderer

Constructor Summary

AccessConstructor and Description
public
PatternBasedSqmFunctionDescriptor(PatternRenderer renderer, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver, FunctionArgumentTypeResolver argumentTypeResolver, String name, FunctionKind functionKind, String argumentListSignature)

Constructs a pattern-based function template

Method Summary

Modifier and TypeMethod and Description
public String
public void
public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, List<SortSpecification> withinGroup, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

public void
render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, Boolean respectNulls, Boolean fromFirst, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

Inherited from org.hibernate.query.sqm.function.AbstractSqmSelfRenderingFunctionDescriptor:
generateSqmAggregateFunctionExpressiongenerateSqmFunctionExpressiongenerateSqmOrderedSetAggregateFunctionExpressiongenerateSqmWindowFunctionExpressiongetFunctionKind

Field Detail

argumentListSignatureback to summary
private final String argumentListSignature
rendererback to summary
private final PatternRenderer renderer

Constructor Detail

PatternBasedSqmFunctionDescriptorback to summary
public PatternBasedSqmFunctionDescriptor(PatternRenderer renderer, ArgumentsValidator argumentsValidator, FunctionReturnTypeResolver returnTypeResolver, FunctionArgumentTypeResolver argumentTypeResolver, String name, FunctionKind functionKind, String argumentListSignature)

Constructs a pattern-based function template

Method Detail

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)

Overrides org.hibernate.query.sqm.function.AbstractSqmSelfRenderingFunctionDescriptor.render.

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

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

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

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

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override
renderback to summary
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, Predicate filter, Boolean respectNulls, Boolean fromFirst, ReturnableType<?> returnType, SqlAstTranslator<?> walker)

Overrides default org.hibernate.query.sqm.function.FunctionRenderer.render.

Annotations
@Override