hibernate/hibernate-orm · error · MappingException
Plural attribute [%s.%s] was mapped with targetEntity=`%s`,
Error message
Plural attribute [%s.%s] was mapped with targetEntity=`%s`, but the attribute is declared as `%s`
What it means
Error "Plural attribute [%s.%s] was mapped with targetEntity=`%s`, but the attribute is declared as `%s`" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/PluralAttributeMappingImpl.java:247
ManagedMappingType declaringType,
MappingModelCreationProcess creationProcess) {
return creationProcess.getCreationContext().getBootstrapContext()
.getModelsContext().getClassDetailsRegistry()
.resolveClassDetails( declaringType.getJavaType().getTypeName() );
}
private static void checkElementType(
EntityCollectionPart elementPart,
ManagedMappingType declaringType,
String attributeName,
MemberDetails attributeMemberDetails) {
final var elementType =
attributeMemberDetails.getElementType()
.determineRawClass().toJavaClass();
if ( !Object.class.equals( elementType ) ) {
final var targetType = elementPart.getJavaType().getJavaTypeClass();
if ( !elementType.isAssignableFrom( targetType ) ) {
throw new MappingException(
String.format(
ROOT,
"Plural attribute [%s.%s] was mapped with targetEntity=`%s`,"
+ " but the attribute is declared as `%s`",
declaringType.getNavigableRole().getFullPath(),
attributeName,
targetType.getName(),
elementType.getName()
)
);
}
}
}
private static @Nullable MemberDetails getMemberDetails(
String attributeName, PropertyAccess propertyAccess, ClassDetails declaringClassDetails) {
final var member = propertyAccess.getGetter().getMember();
if ( member instanceof Field ) {View on GitHub (pinned to fad1729dce)
Solutions
- Remove targetEntity from the mapping so it matches the declared attribute type, or change targetEntity to the declared element type.
- Fix the generic type of the collection attribute to match the intended target entity.
When it happens
Trigger: Thrown when @OneToMany(targetEntity=...) names a class that is not assignable to the declared generic element type of the collection.
Common situations: See trigger scenarios.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/1f64962b5633b904.
Report an issue: GitHub.