hibernate/hibernate-orm · error · AnnotationException
Association '{}' is 'mappedBy' a property named '{}' which r
Error message
Association '{}' is 'mappedBy' a property named '{}' which references the wrong entity type '{}', expected '{}' What it means
Error "Association '{}' is 'mappedBy' a property named '{}' which references the wrong entity type '{}', expected '{}'" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/boot/model/internal/BinderHelper.java:977
private static void checkMappedByType(
String mappedBy,
String propertyName,
PropertyHolder propertyHolder,
Map<String, PersistentClass> persistentClasses,
ToOne toOne) {
final String referencedEntityName = toOne.getReferencedEntityName();
final PersistentClass referencedClass = persistentClasses.get( referencedEntityName );
PersistentClass ownerClass = propertyHolder.getPersistentClass();
while ( ownerClass != null ) {
if ( checkReferencedClass( ownerClass, referencedClass ) ) {
// the two entities map to the same table, so we are good
return;
}
ownerClass = ownerClass.getSuperPersistentClass();
}
// we could not find any entity mapping to the same table
throw new AnnotationException(
"Association '" + qualify( propertyHolder.getPath(), propertyName )
+ "' is 'mappedBy' a property named '" + mappedBy
+ "' which references the wrong entity type '" + referencedEntityName
+ "', expected '" + propertyHolder.getEntityName() + "'"
);
}
private static boolean checkReferencedClass(PersistentClass ownerClass, PersistentClass referencedClass) {
while ( referencedClass != null ) {
// Allow different entity types as long as they map to the same table
if ( ownerClass.getTable() == referencedClass.getTable() ) {
return true;
}
referencedClass = referencedClass.getSuperPersistentClass();
}
return false;
}
View on GitHub (pinned to fad1729dce)
Solutions
- Correct the mappedBy value to reference a property of the expected entity type.
- Or fix the association target type so the mappedBy property belongs to it.
When it happens
Trigger: An association declares 'mappedBy' naming a property that does not exist, has the wrong type, or is not the owning side on the target entity.
Common situations: Bidirectional associations where mappedBy is misspelled, both sides claim ownership, or the target entity was refactored without updating the mapping.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/c62c562f64968c61.
Report an issue: GitHub.