{"record":{"id":"a95d6f3fcdae3243","repo":"hibernate/hibernate-orm","slug":"could-not-resolve-discriminator-value","errorCode":null,"errorMessage":"Could not resolve discriminator value","messagePattern":"Could not resolve discriminator value","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/metamodel/mapping/DiscriminatorConverter.java","lineNumber":55,"sourceCode":"\tpublic JavaType<O> getDomainJavaType() {\n\t\treturn domainJavaType;\n\t}\n\n\t@Override\n\tpublic JavaType<R> getRelationalJavaType() {\n\t\treturn relationalJavaType;\n\t}\n\n\tpublic DiscriminatorValueDetails getDetailsForRelationalForm(R relationalForm) {\n\t\treturn getDetailsForDiscriminatorValue( relationalForm );\n\t}\n\n\t@Override\n\tpublic O toDomainValue(R relationalForm) {\n\t\tassert relationalForm == null || relationalJavaType.isInstance( relationalForm );\n\t\tfinal var matchingValueDetails = getDetailsForRelationalForm( relationalForm );\n\t\tif ( matchingValueDetails == null ) {\n\t\t\tthrow new IllegalStateException( \"Could not resolve discriminator value\" );\n\t\t}\n\n\t\tfinal var indicatedEntity = matchingValueDetails.getIndicatedEntity();\n\t\t//noinspection unchecked\n\t\treturn indicatedEntity.getRepresentationStrategy().getMode() == RepresentationMode.POJO\n\t\t\t&& indicatedEntity.getEntityName().equals( indicatedEntity.getJavaType().getJavaTypeClass().getName() )\n\t\t\t\t? (O) indicatedEntity.getJavaType().getJavaTypeClass()\n\t\t\t\t: (O) indicatedEntity.getEntityName();\n\t}\n\n\t@Override\n\tpublic R toRelationalValue(O domainForm) {\n\t\tfinal String entityName = getEntityName( domainForm );\n\t\tif ( entityName == null ) {\n\t\t\treturn null;\n\t\t}\n\t\telse {\n\t\t\tfinal var value = getDetailsForEntityName( entityName ).getValue();","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/DiscriminatorConverter.java#L37-L73","documentation":"Error \"Could not resolve discriminator value\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown when a discriminator value read from the database cannot be resolved to any registered domain value of the entity hierarchy.","commonSituations":"See trigger scenarios.","solutions":["Ensure the entity hierarchy's discriminator values are registered: add @DiscriminatorValue to each subclass.","Check that the discriminator value read from the row matches one of the declared discriminator mappings."],"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"}