hibernate/hibernate-orm · error · HibernateException
Illegal use of ImplicitDiscriminatorStrategy with explicit n
Error message
Illegal use of ImplicitDiscriminatorStrategy with explicit non-null discriminator mapping: {} What it means
Error "Illegal use of ImplicitDiscriminatorStrategy with explicit non-null discriminator mapping: {}" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/UnifiedAnyDiscriminatorConverter.java:77
}
public boolean hasImplicitValueStrategy() {
return implicitValueStrategy != null;
}
private ImplicitDiscriminatorStrategy resolveImplicitValueStrategy(
ImplicitDiscriminatorStrategy implicitValueStrategy,
Map<DiscriminatorValue, String> explicitValueMappings) {
if ( explicitValueMappings.isEmpty() ) {
if ( implicitValueStrategy == null ) {
return FullNameImplicitDiscriminatorStrategy.FULL_NAME_STRATEGY;
}
}
else {
if ( explicitValueMappings.containsKey( NOT_NULL ) ) {
if ( implicitValueStrategy != null ) {
// we will ultimately not know how to handle "implicit" values which are non-null
throw new HibernateException( "Illegal use of ImplicitDiscriminatorStrategy with explicit non-null discriminator mapping: " + discriminatorRole.getFullPath() );
}
}
}
return implicitValueStrategy;
}
private DiscriminatorValueDetails register(DiscriminatorValue value, EntityMappingType entityMapping) {
final var details = new DiscriminatorValueDetailsImpl( value, entityMapping );
detailsByValue.put( value, details );
detailsByEntityName.put( entityMapping.getEntityName(), details );
return details;
}
@Override
public DiscriminatorValueDetails getDetailsForDiscriminatorValue(Object relationalValue) {
if ( relationalValue == null ) {
// return immediately to avoid falling through to NOT_NULL case
return detailsByValue.get( NULL );View on GitHub (pinned to fad1729dce)
Solutions
- Do not combine the implicit discriminator strategy with an explicit discriminator column/value mapping for the any-mapping; choose one approach.
When it happens
Trigger: Thrown when an implicit discriminator strategy is combined with an explicit non-null discriminator mapping for an @Any association.
Common situations: See trigger scenarios.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/97c13c51689841ab.
Report an issue: GitHub.