hibernate/hibernate-orm · error · SemanticException

The %s() set-returning function was not registered for the d

Error message

The %s() set-returning function was not registered for the dialect

What it means

Error "The %s() set-returning function was not registered for the dialect" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java:4566

	private String toName(HqlParser.JpaNonstandardFunctionNameContext ctx) {
		return ctx.STRING_LITERAL() == null
				? ctx.identifier().getText().toLowerCase()
				: unquoteStringLiteral( ctx.STRING_LITERAL().getText() ).toLowerCase();
	}

	@Override
	public SqmSetReturningFunction<?> visitSimpleSetReturningFunction(HqlParser.SimpleSetReturningFunctionContext ctx) {
		final String functionName = visitIdentifier( ctx.identifier() );
		final var argumentsContext = ctx.genericFunctionArguments();
		@SuppressWarnings("unchecked")
		final List<SqmTypedNode<?>> functionArguments =
				argumentsContext == null
						? emptyList()
						: (List<SqmTypedNode<?>>) argumentsContext.accept(this);

		SqmSetReturningFunctionDescriptor functionTemplate = getSetReturningFunctionDescriptor( functionName );
		if ( functionTemplate == null ) {
			throw new SemanticException(
					"The %s() set-returning function was not registered for the dialect".formatted( functionName ),
					query
			);
		}
		return functionTemplate.generateSqmExpression( functionArguments, queryEngine() );
	}

	@Override
	public SqmExpression<?> visitJpaNonstandardFunction(HqlParser.JpaNonstandardFunctionContext ctx) {
		final String functionName = toName( ctx.jpaNonstandardFunctionName() );
		final var argumentsContext = ctx.genericFunctionArguments();
		@SuppressWarnings("unchecked")
		final List<SqmTypedNode<?>> functionArguments =
				argumentsContext == null
						? emptyList()
						: (List<SqmTypedNode<?>>) argumentsContext.accept(this);

		final var returnableType = returnType( ctx.castTarget() );

View on GitHub (pinned to fad1729dce)

Solutions

  1. The set-returning function is not registered in the current SQL dialect. Register the function via a FunctionContributor or dialect contribution, or use a function the dialect supports.

When it happens

Trigger: A function is called in HQL that the configured SQL dialect does not register: The <value>() set-returning function was not registered for the dialect

Common situations: Using set-returning functions or listagg() on a dialect that does not support them, or a custom Dialect missing the function registration.


AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22). Data as JSON: /api/errors/00e58b9db03671a3. Report an issue: GitHub.