{"record":{"id":"5df60de1fbc2e065","repo":"hibernate/hibernate-orm","slug":"identity-generation-requires-exactly-one-column","errorCode":null,"errorMessage":"Identity generation requires exactly one column","messagePattern":"Identity generation requires exactly one column","errorType":"exception","errorClass":"MappingException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/id/GenericGeneratorGeneration.java","lineNumber":117,"sourceCode":"\tprivate static Properties collectParameters(\n\t\t\tGenericGenerator annotation,\n\t\t\tGeneratorCreationContext context) {\n\t\tfinal Map<String,Object> configuration = new HashMap<>();\n\t\tfor ( var parameter : annotation.parameters() ) {\n\t\t\tconfiguration.put( parameter.name(), parameter.value() );\n\t\t}\n\t\treturn GeneratorParameters.collectParameters(\n\t\t\t\tcontext.getValue(),\n\t\t\t\tcontext.getDatabase().getDialect(),\n\t\t\t\tcontext.getRootClass(),\n\t\t\t\tconfiguration,\n\t\t\t\tcontext.getServiceRegistry().requireService( ConfigurationService.class )\n\t\t);\n\t}\n\n\tprivate static void setColumnToIdentity(Value value) {\n\t\tif ( value.getColumnSpan() != 1 ) {\n\t\t\tthrow new MappingException( \"Identity generation requires exactly one column\" );\n\t\t}\n\t\telse {\n\t\t\tvalue.getColumns().get( 0 ).setIdentity( true );\n\t\t}\n\t}\n\n\t@Override\n\tpublic boolean generatedOnExecution() {\n\t\treturn delegate.generatedOnExecution();\n\t}\n\n\t@Override\n\tpublic boolean generatedOnExecution(Object entity, SharedSessionContractImplementor session) {\n\t\treturn delegate.generatedOnExecution( entity, session );\n\t}\n\n\t@Override\n\tpublic boolean generatedBeforeExecution(Object entity, SharedSessionContractImplementor session) {","sourceCodeStart":99,"sourceCodeEnd":135,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/id/GenericGeneratorGeneration.java#L99-L135","documentation":"Error \"Identity generation requires exactly one column\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown when a generation strategy that supports a single column is mapped to multiple (or no) columns.","commonSituations":"Typical situations: identity/timestamp generation mapped on a composite attribute; wrong @Column mapping for the generated property.","solutions":["Map the identity column as a single (non-composite) column; identity generation supports exactly one column."],"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"}