{"record":{"id":"5e8b98cb933f585a","repo":"hibernate/hibernate-orm","slug":"no-id-generator-was-declared-with-the-name-gene","errorCode":null,"errorMessage":"No id generator was declared with the name '${generatorName}' specified by '@GeneratedValue' (define a named generator using '@SequenceGenerator' or '@TableGenerator')","messagePattern":"No id generator was declared with the name '(.+?)' specified by '@GeneratedValue' \\(define a named generator using '@SequenceGenerator' or '@TableGenerator'\\)","errorType":"exception","errorClass":"AnnotationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorBinder.java","lineNumber":248,"sourceCode":"//\t\t\tcase UUID -> org.hibernate.id.uuid.UuidGenerator.class.getName();\n\t\t\tcase UUID -> UuidValueGenerator.class.getName();\n\t\t\tcase TABLE -> org.hibernate.id.enhanced.TableGenerator.class.getName();\n\t\t\tcase IDENTITY -> null;\n\t\t\tdefault -> SequenceStyleGenerator.class.getName();\n\t\t};\n\t}\n\n\tprivate static String determineStrategy(\n\t\t\tMemberDetails idAttributeMember,\n\t\t\tString generatorType,\n\t\t\tString generatorName,\n\t\t\tMetadataBuildingContext context,\n\t\t\tMap<String, ? extends IdentifierGeneratorDefinition> localGenerators,\n\t\t\tMap<String, Object> configuration) {\n\t\tfinal var definition =\n\t\t\t\tmakeIdentifierGeneratorDefinition( generatorName, idAttributeMember, localGenerators, context );\n\t\tif ( definition == null ) {\n\t\t\tthrow new AnnotationException( \"No id generator was declared with the name '\" + generatorName\n\t\t\t\t\t+ \"' specified by '@GeneratedValue'\"\n\t\t\t\t\t+ \" (define a named generator using '@SequenceGenerator' or '@TableGenerator')\" );\n\t\t}\n\t\tconfiguration.putAll( definition.getParameters() );\n\t\t// This is quite vague in the spec,\n\t\t// but a generator could override the generator choice\n\t\treturn generatorStrategy( generatorType, definition );\n\t}\n\n\tprivate static String generatorStrategy(String generatorType, IdentifierGeneratorDefinition definition) {\n\t\treturn generatorType != null\n\t\t\t// Yuck! this is a hack to not override 'AUTO',\n\t\t\t// even if GeneratedValue.generator is specified\n\t\t\t&& definition.getStrategy().equals( \"identity\" )\n\t\t\t\t? generatorType\n\t\t\t\t: definition.getStrategy();\n\t}\n","sourceCodeStart":230,"sourceCodeEnd":266,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/boot/model/internal/GeneratorBinder.java#L230-L266","documentation":"Error \"No id generator was declared with the name '${generatorName}' specified by '@GeneratedValue' (define a named generator using '@SequenceGenerator' or '@TableGenerator')\" thrown in hibernate/hibernate-orm.","triggerScenarios":"An identifier/value generator declaration is inconsistent with the referenced generator or the annotated element.","commonSituations":"@GeneratedValue pointing at a generator of the wrong kind (SEQUENCE vs TABLE), a missing named generator, too many generator annotations, or an unsupported generation strategy for @CollectionId.","solutions":["Define a named generator with @SequenceGenerator or @TableGenerator matching the name in @GeneratedValue."],"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"}