{"record":{"id":"23a4d352e474051f","repo":"hibernate/hibernate-orm","slug":"strict-jpa-query-language-compliance-was-violated","errorCode":null,"errorMessage":"Strict JPA query language compliance was violated: use of CTEs (common table expressions)","messagePattern":"Strict JPA query language compliance was violated: use of CTEs \\(common table expressions\\)","errorType":"exception","errorClass":"StrictJpaComplianceViolation","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java","lineNumber":770,"sourceCode":"\t\t\tif ( whereClauseContext != null ) {\n\t\t\t\tdeleteStatement.applyPredicate( visitWhereClause( whereClauseContext ) );\n\t\t\t}\n\n\t\t\treturn deleteStatement;\n\t\t}\n\t\tfinally {\n\t\t\tprocessingStateStack.pop();\n\t\t}\n\t}\n\n\n\t// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t// Query spec\n\n\t@Override\n\tpublic Object visitWithClause(HqlParser.WithClauseContext ctx) {\n\t\tif ( creationOptions.useStrictJpaCompliance() ) {\n\t\t\tthrow new StrictJpaComplianceViolation(\n\t\t\t\t\tStrictJpaComplianceViolation.Type.CTES\n\t\t\t);\n\t\t}\n\t\tfinal List<ParseTree> children = ctx.children;\n\t\tfor ( int i = 1; i < children.size(); i += 2 ) {\n\t\t\tvisitCte( (HqlParser.CteContext) children.get( i ) );\n\t\t}\n\t\treturn null;\n\t}\n\n\t@Override\n\tpublic Object visitCte(HqlParser.CteContext ctx) {\n\t\tfinal var cteContainer = (SqmCteContainer) processingStateStack.getCurrent().getProcessingQuery();\n\t\tfinal String name = visitIdentifier( ctx.identifier() );\n\t\tfinal var thirdChild = (TerminalNode) ctx.getChild( 2 );\n\t\tfinal var materialization = switch ( thirdChild.getSymbol().getType() ) {\n\t\t\tcase HqlParser.NOT -> CteMaterialization.NOT_MATERIALIZED;\n\t\t\tcase HqlParser.MATERIALIZED -> CteMaterialization.MATERIALIZED;","sourceCodeStart":752,"sourceCodeEnd":788,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java#L752-L788","documentation":"Error \"Strict JPA query language compliance was violated: use of CTEs (common table expressions)\" thrown in hibernate/hibernate-orm.","triggerScenarios":"An HQL extension is used while strict JPQL compliance is enabled.","commonSituations":"Running HQL-specific syntax (CTEs, limit/offset, collection functions) with hibernate.jpa.compliance.query=true.","solutions":["Disable strict JPA compliance (hibernate.jpa.compliance.query=false) to use CTEs.","Rewrite the query without common table expressions."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}