{"record":{"id":"8a720c5907c2b967","repo":"hibernate/hibernate-orm","slug":"identifier-of-entity-persister-getentityname","errorCode":null,"errorMessage":"Identifier of entity '\" + persister.getEntityName() + \"' must be manually assigned before calling 'insert()'","messagePattern":"Identifier of entity '\" \\+ persister\\.getEntityName\\(\\) \\+ \"' must be manually assigned before calling 'insert\\(\\)'","errorType":"exception","errorClass":"IdentifierGenerationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java","lineNumber":475,"sourceCode":"\t\t\t\ttry {\n\t\t\t\t\tfinal var generatedValues = persister.getInsertCoordinator().insert( entity, state, this );\n\t\t\t\t\tgeneratedId = castNonNull( generatedValues ).getGeneratedValue( persister.getIdentifierMapping() );\n\t\t\t\t\tid = generatedId;\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t\tcatch (ConstraintViolationException cve) {\n\t\t\t\t\tthrow convertException( cve );\n\t\t\t\t}\n\t\t\t\tfinally {\n\t\t\t\t\teventMonitor.completeEntityInsertEvent( event, generatedId, persister.getEntityName(), success, this );\n\t\t\t\t}\n\t\t\t\tpersister.setIdentifier( entity, id, this );\n\t\t\t}\n\t\t}\n\t\telse { // assigned identifier\n\t\t\tid = persister.getIdentifier( entity, this );\n\t\t\tif ( id == null ) {\n\t\t\t\tthrow new IdentifierGenerationException( \"Identifier of entity '\" + persister.getEntityName() + \"' must be manually assigned before calling 'insert()'\" );\n\t\t\t}\n\t\t\tif ( firePreInsert(entity, id, state, persister) ) {\n\t\t\t\treturn id;\n\t\t\t}\n\t\t\telse {\n\t\t\t\trunInterceptorCallback(\n\t\t\t\t\t\t() -> getInterceptor().onInsert( entity, id, state, persister.getPropertyNames(), persister.getPropertyTypes() ) );\n\t\t\t\tfinal var eventMonitor = getEventMonitor();\n\t\t\t\tfinal var event = eventMonitor.beginEntityInsertEvent();\n\t\t\t\tboolean success = false;\n\t\t\t\ttry {\n\t\t\t\t\tpersister.getInsertCoordinator().insert( entity, id, state, this );\n\t\t\t\t\tsuccess = true;\n\t\t\t\t}\n\t\t\t\tcatch (ConstraintViolationException cve) {\n\t\t\t\t\tthrow convertException( cve );\n\t\t\t\t}\n\t\t\t\tfinally {","sourceCodeStart":457,"sourceCodeEnd":493,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java#L457-L493","documentation":"Error \"Identifier of entity '\" + persister.getEntityName() + \"' must be manually assigned before calling 'insert()'\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/internal/StatelessSessionImpl.java:475 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the entity identifier manually before calling statelessSession.insert() for entities with assigned identifiers."],"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"}