{"record":{"id":"a25925b8f2f62fd7","repo":"hibernate/hibernate-orm","slug":"embeddable-subclass-s-defines-the-same-discrimi","errorCode":null,"errorMessage":"Embeddable subclass '%s' defines the same discriminator value as '%s","messagePattern":"Embeddable subclass '(.+?)' defines the same discriminator value as '(.+?)","errorType":"exception","errorClass":"AnnotationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/boot/model/internal/EmbeddableBinder.java","lineNumber":778,"sourceCode":"\t\t\t}\n\t\t\tsubclass = superClass;\n\t\t}\n\t\treturn classElements;\n\t}\n\n\tprivate static void collectSubclassElements(\n\t\t\tAccessType propertyAccessor,\n\t\t\tMetadataBuildingContext context,\n\t\t\tClassDetails superclass,\n\t\t\tList<PropertyData> classElements,\n\t\t\tBasicType<?> discriminatorType,\n\t\t\tMap<Object, String> discriminatorValues,\n\t\t\tMap<String, String> subclassToSuperclass) {\n\t\tfor ( var subclass : context.getMetadataCollector().getEmbeddableSubclasses( superclass ) ) {\n\t\t\t// collect the discriminator value details\n\t\t\tfinal String old = collectDiscriminatorValue( subclass, discriminatorType, discriminatorValues );\n\t\t\tif ( old != null ) {\n\t\t\t\tthrow new AnnotationException( String.format(\n\t\t\t\t\t\t\"Embeddable subclass '%s' defines the same discriminator value as '%s\",\n\t\t\t\t\t\tsubclass.getName(),\n\t\t\t\t\t\told\n\t\t\t\t) );\n\t\t\t}\n\t\t\tfinal String put = subclassToSuperclass.put( subclass.getName().intern(), superclass.getName().intern() );\n\t\t\tassert put == null;\n\t\t\t// collect property of subclass\n\t\t\tfinal var superContainer = new PropertyContainer( subclass, superclass, propertyAccessor );\n\t\t\taddElementsOfClass( classElements, superContainer, context, 0 );\n\t\t\t// recursively do that same for all subclasses\n\t\t\tcollectSubclassElements(\n\t\t\t\t\tpropertyAccessor,\n\t\t\t\t\tcontext,\n\t\t\t\t\tsubclass,\n\t\t\t\t\tclassElements,\n\t\t\t\t\tdiscriminatorType,\n\t\t\t\t\tdiscriminatorValues,","sourceCodeStart":760,"sourceCodeEnd":796,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/boot/model/internal/EmbeddableBinder.java#L760-L796","documentation":"Error \"Embeddable subclass '%s' defines the same discriminator value as '%s\" thrown in hibernate/hibernate-orm.","triggerScenarios":"An annotation restricted to the root of an inheritance hierarchy is placed on a subclass (or the hierarchy rules are otherwise violated).","commonSituations":"SINGLE_TABLE/JOINED hierarchies where @Table, @DiscriminatorColumn, @DiscriminatorFormula, @Cache, @Immutable, @Id or @Version are declared on the wrong class of the hierarchy.","solutions":["Give each embeddable subclass a distinct @DiscriminatorValue."],"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"}