hibernate/hibernate-orm · error · ParsingException

Unexpected terminal node [{node.getText()}]

Error message

Unexpected terminal node [{node.getText()}]

What it means

Error "Unexpected terminal node [{node.getText()}]" thrown in hibernate/hibernate-orm.

Source

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

	@Override
	public SqmExpression<?> visitTerminal(TerminalNode node) {
		return switch ( node.getSymbol().getType() ) {
			case HqlLexer.EOF -> null;
			case HqlParser.STRING_LITERAL -> stringLiteral( node.getText() );
			case HqlParser.JAVA_STRING_LITERAL -> javaStringLiteral( node.getText() );
			case HqlParser.INTEGER_LITERAL -> integerLiteral( node.getText() );
			case HqlParser.LONG_LITERAL -> longLiteral( node.getText() );
			case HqlParser.BIG_INTEGER_LITERAL -> bigIntegerLiteral( node.getText() );
			case HqlParser.HEX_LITERAL -> hexLiteral( node.getText() );
			case HqlParser.FLOAT_LITERAL -> floatLiteral( node.getText() );
			case HqlParser.DOUBLE_LITERAL -> doubleLiteral( node.getText() );
			case HqlParser.BIG_DECIMAL_LITERAL -> bigDecimalLiteral( node.getText() );
			case HqlParser.FALSE -> booleanLiteral( false );
			case HqlParser.TRUE -> booleanLiteral( true );
			case HqlParser.NULL -> new SqmLiteralNull<>( nodeBuilder() );
			case HqlParser.BINARY_LITERAL -> binaryLiteral( node.getText() );
			default -> throw new ParsingException( "Unexpected terminal node [" + node.getText() + "]" );
		};
	}

	@Override
	public Object visitDateTimeLiteral(HqlParser.DateTimeLiteralContext ctx) {
		return ctx.getChild( 0 ).accept( this );
	}

	@Override
	public Object visitLocalDateTimeLiteral(HqlParser.LocalDateTimeLiteralContext ctx) {
		return ctx.localDateTime().accept( this );
	}

	@Override
	public Object visitZonedDateTimeLiteral(HqlParser.ZonedDateTimeLiteralContext ctx) {
		return ctx.zonedDateTime().accept( this );
	}

View on GitHub (pinned to fad1729dce)

Solutions

  1. The parser reached a terminal node the translator does not recognize, which means the query contains unsupported or malformed syntax at that token. Correct the HQL near the reported node text.

When it happens

Trigger: The HQL parser produced a node the translator does not expect: Unexpected terminal node [<value>]

Common situations: Usually an internal grammar edge case in window-frame or expression parsing; can surface with unusual but syntactically accepted HQL.


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