hibernate/hibernate-orm · error · MappingException
Entity '${name}' must explicitly specify its '@Discriminator
Error message
Entity '${name}' must explicitly specify its '@DiscriminatorValue' What it means
Error "Entity '${name}' must explicitly specify its '@DiscriminatorValue'" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/EntityBinder.java:1816
}
private void bindDiscriminatorValue() {
final var discriminatorValue = annotatedClass.getAnnotationUsage( DiscriminatorValue.class, modelsContext() );
persistentClass.setDiscriminatorValue( discriminatorValueString( discriminatorValue ) );
}
private String discriminatorValueString(DiscriminatorValue discriminatorValue) {
if ( discriminatorValue == null ) {
final var discriminator = persistentClass.getDiscriminator();
if ( discriminator == null ) {
return name;
}
else {
final String discriminatorTypeName = discriminator.getType().getName();
return switch ( discriminatorTypeName ) {
case "string" -> name; //Spec compliant
case "integer"-> String.valueOf( name.hashCode() ); // TODO: pretty nasty, should we just deprecate/disallow this?
default -> throw new MappingException( "Entity '" + name + "' must explicitly specify its '@DiscriminatorValue'" );
};
}
}
else {
return discriminatorValue.value();
}
}
private void bindConcreteProxy() {
final var concreteProxy = annotatedClass.getAnnotationUsage( ConcreteProxy.class, modelsContext() );
if ( concreteProxy != null ) {
if ( persistentClass.getSuperclass() != null ) {
throw new AnnotationException( "Entity class '" + persistentClass.getClassName()
+ "' is annotated '@ConcreteProxy' but it is not the root of the entity inheritance hierarchy" );
}
persistentClass.getRootClass().setConcreteProxy( true );
}
}View on GitHub (pinned to fad1729dce)
Solutions
- Add an explicit @DiscriminatorValue to the entity.
When it happens
Trigger: A discriminator mapping is declared where the inheritance strategy does not allow it or is missing required values.
Common situations: @DiscriminatorColumn/@DiscriminatorFormula on non-root classes, JOINED hierarchies with @DiscriminatorFormula, or duplicate/missing @DiscriminatorValue declarations.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/548ea5981509216b.
Report an issue: GitHub.