hibernate/hibernate-orm · error · IllegalArgumentException

Expected 'Number' expression but got '{}'

Error message

Expected 'Number' expression but got '{}'

What it means

Error "Expected 'Number' expression but got '{}'" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/restriction/JakartaDataRestriction.java:588

	private static Expression<String> stringExpression(
			jakarta.data.expression.Expression<?, ?> expression,
			Root<?> root,
			CriteriaBuilder builder) {
		return stringExpression( expression( expression, root, builder ) );
	}

	private static Expression<String> stringExpression(Expression<?> expression) {
		verifyExpressionType( expression, String.class );
		return expression.as( String.class );
	}

	private static Expression<? extends Number> numberExpression(
			jakarta.data.expression.Expression<?, ?> expression,
			Root<?> root,
			CriteriaBuilder builder) {
		final var expressionType = wrapperType( expression.type() );
		if ( !Number.class.isAssignableFrom( expressionType ) ) {
			throw new IllegalArgumentException(
					"Expected 'Number' expression but got '" + expressionType.getName() + "'" );
		}
		return numberExpression( expression( expression, root, builder ),
				expressionType.asSubclass( Number.class ) );
	}

	private static <N extends Number> Expression<N> numberExpression(
			Expression<?> expression,
			Class<N> expectedType) {
		verifyExpressionType( expression, expectedType );
		return expression.as( expectedType );
	}

	private static Expression<?> literal(
			Object value,
			Expression<?> expression,
			CriteriaBuilder builder) {
		if ( value != null ) {

View on GitHub (pinned to fad1729dce)

Solutions

  1. A Number expression was required but a different type was given. Supply a numeric expression.

When it happens

Trigger: A runtime precondition of the Hibernate query API is violated: Expected 'Number' expression but got '<value>'

Common situations: Application code or configuration calls the query API in a way that violates its documented contract; the interpolated values in the message identify the offending input.


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