{"record":{"id":"483eb2776f7be072","repo":"hibernate/hibernate-orm","slug":"native-queries-do-not-support-key-based-pagination","errorCode":null,"errorMessage":"native queries do not support key-based pagination","messagePattern":"native queries do not support key-based pagination","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/sql/internal/NativeQueryImpl.java","lineNumber":1111,"sourceCode":"\t}\n\n\t@Override\n\tpublic int execute() {\n\t\treturn executeMutation( this::doExecute );\n\t}\n\n\tprivate int doExecute() {\n\t\treturn resolveNonSelectQueryPlan().executeUpdate( this );\n\t}\n\n\t@Override @SuppressWarnings(\"removal\")\n\tpublic int executeUpdate() {\n\t\treturn execute();\n\t}\n\n\t@Override\n\tpublic KeyedResultList<R> getKeyedResultList(KeyedPage<R> page) {\n\t\tthrow new UnsupportedOperationException(\"native queries do not support key-based pagination\");\n\t}\n\n\tprotected SelectQueryPlan<R> resolveSelectQueryPlan() {\n\t\tfinal var mapping = resultSetMapping();\n\t\tcheckResultType( resultType, mapping );\n\t\tfinal int parameterStartPosition = parameterStartPosition();\n\t\tif ( isCacheableQuery() ) {\n\t\t\treturn getInterpretationCache().resolveSelectQueryPlan(\n\t\t\t\t\tselectInterpretationsKey( mapping, parameterStartPosition ),\n\t\t\t\t\tkey -> createQueryPlan( key.getResultSetMapping(), key.getStartPosition() )\n\t\t\t);\n\t\t}\n\t\telse {\n\t\t\treturn createQueryPlan( mapping, parameterStartPosition );\n\t\t}\n\t}\n\n\tprivate int parameterStartPosition() {","sourceCodeStart":1093,"sourceCodeEnd":1129,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/sql/internal/NativeQueryImpl.java#L1093-L1129","documentation":"Error \"native queries do not support key-based pagination\" thrown in hibernate/hibernate-orm.","triggerScenarios":"A runtime precondition of the Hibernate query API is violated.","commonSituations":"Occurs when application code or configuration does not satisfy the documented contract of the API being called.","solutions":["Key-based pagination (KeyedResultList) is not supported for native queries.","Use setFirstResult/setMaxResults offset pagination, or rewrite in HQL to use key-based pagination."],"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"}