Repository: cayenne Updated Branches: refs/heads/master f0b2ed009 -> dcde4195a
CAY-2282 Various Update Issues With Vertical Inheritance Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/dcde4195 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/dcde4195 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/dcde4195 Branch: refs/heads/master Commit: dcde4195a219a6711d12b96a1de5b6de292d450e Parents: f0b2ed0 Author: Nikita Timofeev <[email protected]> Authored: Mon May 7 17:03:42 2018 +0300 Committer: Nikita Timofeev <[email protected]> Committed: Mon May 7 17:03:42 2018 +0300 ---------------------------------------------------------------------- .../cayenne/access/DataDomainIndirectDiffBuilder.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/dcde4195/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java index 1c8e4d7..c824d6e 100644 --- a/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java +++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DataDomainIndirectDiffBuilder.java @@ -91,13 +91,16 @@ final class DataDomainIndirectDiffBuilder implements GraphChangeHandler { , relationship.getName(), relationship.getSourceEntity().getName()); } - String path = relationship.getDbRelationshipPath(); - int lastDot = path.lastIndexOf('.'); - if(lastDot > -1) { - path = path.substring(0, lastDot); + // build path without last segment + StringBuilder path = new StringBuilder(); + for(int i=0; i<relationship.getDbRelationships().size() - 1; i++) { + if(path.length() > 0) { + path.append('.'); + } + path.append(relationship.getDbRelationships().get(i).getName()); } - if(!parent.getContext().getObjectStore().hasFlattenedPath(nodeObjectId, path)) { + if(!parent.getContext().getObjectStore().hasFlattenedPath(nodeObjectId, path.toString())) { // Register this combination (so we can remove it later if an insert occurs before commit) FlattenedArcKey key = new FlattenedArcKey(nodeObjectId, (ObjectId) targetNodeId, relationship);
