I think I may have run into an issue that is related to this thread: http://markmail.org/message/slm4joyswjp77vzi
- I have an (abstract) entity A and two subentities/subclasses A1 and A2. - I have an (abstract) entity B with three subentities B1, B2 and B3. - There is a 1:n relationship from A to B. Now, if I create an instance of A1 and use addToB() to add a B1 instance, B1 is added to the list. But I get a validation error because upon commit the foreign key for the A1 instance is not set on the B1 instance. Debugging, I found that ObjRelationship.getReverseRelationship() didn't look in super entities for the reverse relationship. Mindlessly changing that method (in Trunk) from: Entity src = this.getSourceEntity(); Iterator<?> it = target.getRelationships().iterator(); while (it.hasNext()) { ObjRelationship rel = (ObjRelationship) it.next(); if (rel.getTargetEntity() != src) continue; to: Entity src = this.getSourceEntity(); Iterator<?> it = target.getRelationships().iterator(); while (it.hasNext()) { ObjRelationship rel = (ObjRelationship) it.next(); Entity relTarget = rel.getTargetEntity(); ObjEntity currentSrc = (ObjEntity)src; while (currentSrc != null) { if (relTarget == currentSrc) { break; } currentSrc = currentSrc.getSuperEntity(); } if (src == null) { continue; } ...solves my immediate problem, but I have no idea about any side-effects. Am I doing anything wrong? Thanks, Jeremias Maerki