{"record":{"id":"a81b9192d5c1a707","repo":"hibernate/hibernate-orm","slug":"can-t-emulate-fetch-clause-type-a81b91","errorCode":null,"errorMessage":"Can't emulate fetch clause type: {}","messagePattern":"Can't emulate fetch clause type: (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/dialect/sql/ast/H2SqlAstTranslator.java","lineNumber":262,"sourceCode":"\n\t@Override\n\tpublic void visitOffsetFetchClause(QueryPart queryPart) {\n\t\tif ( !currentFullJoinEmulationHelper().isFullJoinEmulationQueryPart( queryPart ) ) {\n\t\t\tif ( isRowsOnlyFetchClauseType( queryPart ) ) {\n\t\t\t\tif ( supportsOffsetFetchClause() ) {\n\t\t\t\t\trenderOffsetFetchClause( queryPart, true );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\trenderLimitOffsetClause( queryPart );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( supportsOffsetFetchClausePercentWithTies() ) {\n\t\t\t\t\trenderOffsetFetchClause( queryPart, true );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// FETCH PERCENT and WITH TIES were introduced along with window functions\n\t\t\t\t\tthrow new IllegalArgumentException(\n\t\t\t\t\t\t\t\"Can't emulate fetch clause type: \" + queryPart.getFetchClauseType() );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tprotected void renderSelectTupleComparison(\n\t\t\tList<SqlSelection> lhsExpressions,\n\t\t\tSqlTuple tuple,\n\t\t\tComparisonOperator operator) {\n\t\temulateSelectTupleComparison( lhsExpressions, tuple.getExpressions(), operator, true );\n\t}\n\n\t@Override\n\tprotected void visitSqlSelections(SelectClause selectClause) {\n\t\tfinal boolean renderAsArray = this.renderAsArray;\n\t\tthis.renderAsArray = false;","sourceCodeStart":244,"sourceCodeEnd":280,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/dialect/sql/ast/H2SqlAstTranslator.java#L244-L280","documentation":"Error \"Can't emulate fetch clause type: {}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/dialect/sql/ast/H2SqlAstTranslator.java:262 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a fetch clause type supported by H2 (e.g. ROWS ONLY) or switch to limit/offset pagination","Avoid PERCENT or WITH TIES fetch clauses on H2"],"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"}