[ https://issues.apache.org/jira/browse/CAY-2777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nikita Timofeev closed CAY-2777. -------------------------------- Resolution: Fixed > 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 > Assignee: Nikita Timofeev > Priority: Major > Fix For: 4.2 > > Time Spent: 20m > Remaining Estimate: 0h > > 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)