hibernate/hibernate-orm · error · IllegalArgumentException
Not an embeddable: ${clsName}
Error message
Not an embeddable: ${clsName} What it means
Error "Not an embeddable: ${clsName}" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/JpaMetamodelImpl.java:300
throw new IllegalArgumentException( "Not an entity: " + cls.getName() );
}
return entityType;
}
@Override
public @Nullable <X> EmbeddableDomainType<X> findEmbeddableType(Class<X> cls) {
return checkDomainType( cls, managedTypeByClass.get( cls ) )
instanceof EmbeddableDomainType<X> embeddableDomainType
? embeddableDomainType
: null;
}
@Override
@Nonnull
public <X> EmbeddableDomainType<X> embeddable(@Nonnull Class<X> cls) {
final var embeddableType = findEmbeddableType( cls );
if ( embeddableType == null ) {
throw new IllegalArgumentException( "Not an embeddable: " + cls.getName() );
}
return embeddableType;
}
private Collection<ManagedDomainType<?>> getAllManagedTypes() {
// should never happen
return switch ( jpaMetaModelPopulationSetting ) {
case IGNORE_UNSUPPORTED -> managedTypeByClass.values();
case ENABLED -> managedTypeByName.values();
case DISABLED -> emptySet();
};
}
@Override
@Nonnull
public Set<ManagedType<?>> getManagedTypes() {
return new HashSet<>( getAllManagedTypes() );
}View on GitHub (pinned to fad1729dce)
Solutions
- Pass an @Embeddable class that is part of the persistence unit.
When it happens
Trigger: Thrown when embeddable() is called with a Class that is not a mapped embeddable class.
Common situations: See trigger scenarios.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/5a15e00b3e19e5f0.
Report an issue: GitHub.