hibernate/hibernate-orm · error · AnnotationPlacementException
@EmbeddedTable only supported for use on entity or mapped-su
Error message
@EmbeddedTable only supported for use on entity or mapped-superclass
What it means
Error "@EmbeddedTable only supported for use on entity or mapped-superclass" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/ComponentPropertyHolder.java:141
MetadataBuildingContext buildingContext) {
Table tableToUse = container.getTable();
boolean wasExplicit =
container instanceof ComponentPropertyHolder componentPropertyHolder
&& componentPropertyHolder.getComponent().wasTableExplicitlyDefined();
final var attributeMember = propertyData.getAttributeMember();
if ( attributeMember != null ) {
final var embeddedTableAnn = attributeMember.getDirectAnnotationUsage( EmbeddedTable.class );
// we only allow this when done for an embedded on an entity or mapped-superclass
if ( container instanceof ClassPropertyHolder ) {
if ( embeddedTableAnn != null ) {
tableToUse = resolveEmbeddedTable( container, buildingContext, embeddedTableAnn );
wasExplicit = true;
}
}
else if ( embeddedTableAnn != null ) {
// not allowed
throw new AnnotationPlacementException(
"@EmbeddedTable only supported for use on entity or mapped-superclass" );
}
}
if ( attributeMember != null && container instanceof ClassPropertyHolder ) {
final var embeddedTableAnn = attributeMember.getDirectAnnotationUsage( EmbeddedTable.class );
if ( embeddedTableAnn != null ) {
tableToUse = resolveEmbeddedTable( container, buildingContext, embeddedTableAnn );
wasExplicit = true;
}
}
component.setTable( tableToUse, wasExplicit );
}
private static Table resolveEmbeddedTable(
PropertyHolder container, MetadataBuildingContext buildingContext, EmbeddedTable embeddedTableAnn) {
final Identifier tableNameIdentifier =
buildingContext.getObjectNameNormalizer()View on GitHub (pinned to fad1729dce)
Solutions
- Move @EmbeddedTable onto an entity or mapped-superclass, or remove it from the unsupported target.
When it happens
Trigger: An @Embeddable / @Embedded / @ElementCollection mapping violates an embeddable mapping constraint.
Common situations: Embeddables with @Id members, inheritance, recursive composition, or properties split across multiple tables; or @Convert/@EmbeddedTable placed where unsupported.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/d6919595bfc7c8f4.
Report an issue: GitHub.