hibernate/hibernate-orm · error · StrictJpaComplianceViolation

RESERVED_WORD_USED_AS_ALIAS

RESERVED_WORD_USED_AS_ALIAS

Error message

Strict JPQL compliance was violated : %s [%s]

What it means

Error "Strict JPQL compliance was violated : %s [%s]" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmTreeCreationHelper.java:220

				checkJpaCompliance( sqmBuilder, identifierContext.getStart() );
				return sqmBuilder.visitIdentifier( identifierContext );
			}
			else if ( lastChild instanceof HqlParser.NakedIdentifierContext identifierContext ) {
				// in this branch, the alias could be a reserved word ("keyword as identifier")
				// which JPA disallows...
				checkJpaCompliance( sqmBuilder, identifierContext.getStart() );
				return sqmBuilder.visitNakedIdentifier( identifierContext );
			}
			else {
				throw new AssertionFailure( "Unexpected type parse of tree" );
			}
		}
	}

	private static void checkJpaCompliance(SemanticQueryBuilder<?> sqmBuilder, Token identificationVariable) {
		if ( sqmBuilder.getCreationOptions().useStrictJpaCompliance() ) {
			if ( RESERVED_WORDS.contains( identificationVariable.getText().toLowerCase( Locale.ENGLISH ) ) ) {
				throw new StrictJpaComplianceViolation(
						String.format(
								Locale.ROOT,
								"Strict JPQL compliance was violated : %s [%s]",
								StrictJpaComplianceViolation.Type.RESERVED_WORD_USED_AS_ALIAS.description(),
								identificationVariable.getText()
						),
						StrictJpaComplianceViolation.Type.RESERVED_WORD_USED_AS_ALIAS
				);
			}
		}
	}

	/**
	 * Handle JPA requirement that variables (aliases) be case-insensitive
	 */
	public static String applyJpaCompliance(String text, SemanticQueryBuilder<?> sqmBuilder) {
		return text != null
			&& sqmBuilder.getCreationOptions().useStrictJpaCompliance()

View on GitHub (pinned to fad1729dce)

Solutions

  1. The query uses HQL extensions while strict JPQL compliance was requested. Rewrite the query in portable JPQL or disable strict compliance checking.

When it happens

Trigger: An HQL-specific construct is used while strict JPQL compliance is enabled: Strict JPQL compliance was violated : <value> [<value>]

Common situations: Applications running with hibernate.jpa.compliance.query=true (or JPA-compliance mode) that submit queries using Hibernate extensions such as collations, tuples/row value constructors, HQL collection functions (maxelement/elements/indices), value()/key() on non-Map types, or non-standard function calls without FUNCTION() syntax.


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