Andrus Adamchik created CAY-2777: ------------------------------------ Summary: Reverse relationship is not set with single table inheritance Key: CAY-2777 URL: https://issues.apache.org/jira/browse/CAY-2777 Project: Cayenne Issue Type: Bug Affects Versions: 4.2.RC1 Reporter: Andrus Adamchik
Given the model: {noformat} // a table with a many to many to self T1: id, type T11: child_id, parent_id; // Base ObjEntity O1: - flat rel "parents" mapped as "db:parents.parent" // Sub ObjEntity 1 O1S1: - flat rel "children" mapped as "db:children.child" // Sub ObjEntity 2 O1S2: {noformat} {noformat} O1S1 parent = ... O1S2 child = ... // THE PROBLEM IS HERE // This fails to set "parents" relationship of O1S2 parent.addToChildren(child); {noformat} The culprit seems to be "ObjRelationship.getReverseRelationship()", specifically this check here {noformat} for (ObjRelationship relationship : target.getRelationships()) { // TODO: this should be replaced with inheritance-aware code. // "relationship.getTargetEntity()" should be allowed to be a // super entity of source if (relationship.getTargetEntity() != source) { continue; } {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)