{"record":{"id":"a6fdbfdd11315d5b","repo":"hibernate/hibernate-orm","slug":"cannot-retrieve-the-generated-identity-because-h","errorCode":null,"errorMessage":"Cannot retrieve the generated identity, because 'hibernate.jdbc.use_get_generated_keys' was disabled and the dialect does not support selecting the last generated identity","messagePattern":"Cannot retrieve the generated identity, because 'hibernate\\.jdbc\\.use_get_generated_keys' was disabled and the dialect does not support selecting the last generated identity","errorType":"exception","errorClass":"HibernateException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/id/insert/BasicSelectingDelegate.java","lineNumber":41,"sourceCode":"\n\tpublic BasicSelectingDelegate(EntityPersister persister) {\n\t\tsuper( persister, EventType.INSERT, false, false );\n\t\tthis.persister = persister;\n\t}\n\n\t@Override\n\tpublic TableMutationBuilder<?> createTableMutationBuilder(\n\t\t\tExpectation expectation,\n\t\t\tSessionFactoryImplementor factory) {\n\t\treturn new TableInsertBuilderStandard( persister, persister.getIdentifierTableMapping(), factory );\n\t}\n\n\t@Override\n\tprotected String getSelectSQL() {\n\t\tfinal String identitySelectString = persister.getIdentitySelectString();\n\t\tif ( identitySelectString == null\n\t\t\t\t&& !dialect().getIdentityColumnSupport().supportsInsertSelectIdentity() ) {\n\t\t\tthrow new HibernateException( \"Cannot retrieve the generated identity, because '\"\n\t\t\t\t\t+ USE_GET_GENERATED_KEYS\n\t\t\t\t\t+ \"' was disabled and the dialect does not support selecting the last generated identity\" );\n\t\t}\n\t\treturn identitySelectString;\n\t}\n}\n","sourceCodeStart":23,"sourceCodeEnd":48,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/id/insert/BasicSelectingDelegate.java#L23-L48","documentation":"Error \"Cannot retrieve the generated identity, because 'hibernate.jdbc.use_get_generated_keys' was disabled and the dialect does not support selecting the last generated identity\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown when the database did not return the expected generated key/identity value after an insert.","commonSituations":"Typical situations: JDBC driver not returning generated keys; use_get_generated_keys disabled with a dialect lacking identity selection; triggers interfering with key retrieval.","solutions":["Enable hibernate.jdbc.use_get_generated_keys, or use a dialect/database that supports selecting the last generated identity.","Switch to sequence-based id generation if the database supports it."],"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"}