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
- 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.