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);
 

Reply via email to