Class JsonTableFunction
java.lang.Object
org.hibernate.query.sqm.function.AbstractSqmSetReturningFunctionDescriptor
org.hibernate.query.sqm.function.AbstractSqmSelfRenderingSetReturningFunctionDescriptor
org.hibernate.dialect.function.json.JsonTableFunction
- All Implemented Interfaces:
SetReturningFunctionRenderer
,SqmSetReturningFunctionDescriptor
- Direct Known Subclasses:
DB2JsonTableFunction
,H2JsonTableFunction
,HANAJsonTableFunction
,MySQLJsonTableFunction
,OracleJsonTableFunction
,PostgreSQLJsonTableFunction
,SQLServerJsonTableFunction
Standard json_table function.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final record
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
JsonTableFunction
(SetReturningFunctionTypeResolver setReturningFunctionTypeResolver, TypeConfiguration typeConfiguration) JsonTableFunction
(TypeConfiguration typeConfiguration) -
Method Summary
Modifier and TypeMethodDescriptionprotected int
countNestedColumnDefinitions
(JsonTableColumnsClause jsonTableColumnsClause) protected String
determineColumnType
(CastTarget castTarget, SqlAstTranslator<?> walker) protected static String
determineColumnType
(CastTarget castTarget, TypeConfiguration typeConfiguration) protected <T> SelfRenderingSqmSetReturningFunction<T>
generateSqmSetReturningFunctionExpression
(List<? extends SqmTypedNode<?>> arguments, QueryEngine queryEngine) Return an SQM node or subtree representing an invocation of this function with the given arguments.void
render
(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) protected int
renderColumnDefinitions
(SqlAppender sqlAppender, JsonTableColumnsClause jsonTableColumnsClause, char separator, int clauseLevel, SqlAstTranslator<?> walker) protected void
renderColumnPath
(String name, @Nullable String jsonPath, SqlAppender sqlAppender, SqlAstTranslator<?> walker) protected int
renderColumns
(SqlAppender sqlAppender, JsonTableColumnsClause jsonTableColumnsClause, int clauseLevel, SqlAstTranslator<?> walker) protected void
renderJsonExistsColumnDefinition
(SqlAppender sqlAppender, JsonTableExistsColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) protected int
renderJsonNestedColumnDefinition
(SqlAppender sqlAppender, JsonTableNestedColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) protected void
renderJsonOrdinalityColumnDefinition
(SqlAppender sqlAppender, JsonTableOrdinalityColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) protected void
renderJsonQueryColumnDefinition
(SqlAppender sqlAppender, JsonTableQueryColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) protected void
renderJsonTable
(SqlAppender sqlAppender, JsonTableFunction.JsonTableArguments arguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) protected void
renderJsonValueColumnDefinition
(SqlAppender sqlAppender, JsonTableValueColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) Methods inherited from class org.hibernate.query.sqm.function.AbstractSqmSetReturningFunctionDescriptor
generateSqmExpression, getArgumentListSignature, getArgumentsValidator, getArgumentTypeResolver, getName, getSetReturningTypeResolver, getSignature
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hibernate.query.sqm.function.SetReturningFunctionRenderer
rendersIdentifierVariable
-
Constructor Details
-
JsonTableFunction
-
JsonTableFunction
protected JsonTableFunction(SetReturningFunctionTypeResolver setReturningFunctionTypeResolver, TypeConfiguration typeConfiguration)
-
-
Method Details
-
generateSqmSetReturningFunctionExpression
protected <T> SelfRenderingSqmSetReturningFunction<T> generateSqmSetReturningFunctionExpression(List<? extends SqmTypedNode<?>> arguments, QueryEngine queryEngine) Description copied from class:AbstractSqmSetReturningFunctionDescriptor
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.- Overrides:
generateSqmSetReturningFunctionExpression
in classAbstractSqmSelfRenderingSetReturningFunctionDescriptor
- Parameters:
arguments
- the arguments of the function invocation
-
render
public void render(SqlAppender sqlAppender, List<? extends SqlAstNode> sqlAstArguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) -
renderJsonTable
protected void renderJsonTable(SqlAppender sqlAppender, JsonTableFunction.JsonTableArguments arguments, AnonymousTupleTableGroupProducer tupleType, String tableIdentifierVariable, SqlAstTranslator<?> walker) -
determineColumnType
-
determineColumnType
protected static String determineColumnType(CastTarget castTarget, TypeConfiguration typeConfiguration) -
renderColumns
protected int renderColumns(SqlAppender sqlAppender, JsonTableColumnsClause jsonTableColumnsClause, int clauseLevel, SqlAstTranslator<?> walker) -
renderColumnDefinitions
protected int renderColumnDefinitions(SqlAppender sqlAppender, JsonTableColumnsClause jsonTableColumnsClause, char separator, int clauseLevel, SqlAstTranslator<?> walker) -
renderJsonNestedColumnDefinition
protected int renderJsonNestedColumnDefinition(SqlAppender sqlAppender, JsonTableNestedColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) -
countNestedColumnDefinitions
-
renderJsonOrdinalityColumnDefinition
protected void renderJsonOrdinalityColumnDefinition(SqlAppender sqlAppender, JsonTableOrdinalityColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) -
renderJsonValueColumnDefinition
protected void renderJsonValueColumnDefinition(SqlAppender sqlAppender, JsonTableValueColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) -
renderColumnPath
protected void renderColumnPath(String name, @Nullable String jsonPath, SqlAppender sqlAppender, SqlAstTranslator<?> walker) -
renderJsonQueryColumnDefinition
protected void renderJsonQueryColumnDefinition(SqlAppender sqlAppender, JsonTableQueryColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker) -
renderJsonExistsColumnDefinition
protected void renderJsonExistsColumnDefinition(SqlAppender sqlAppender, JsonTableExistsColumnDefinition definition, int clauseLevel, SqlAstTranslator<?> walker)
-