You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2019/09/17 10:53:26 UTC

[cayenne] branch STABLE-4.1 updated: CAY-2619 "to-dep PK" related dbimport delta confuses the Modeler

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch STABLE-4.1
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/STABLE-4.1 by this push:
     new c543cfc  CAY-2619 "to-dep PK" related dbimport delta confuses the Modeler
c543cfc is described below

commit c543cfc320dc69c47eb7e711261aeddf07988910
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Tue Sep 17 13:52:42 2019 +0300

    CAY-2619 "to-dep PK" related dbimport delta confuses the Modeler
---
 RELEASE-NOTES.txt                                                 | 1 +
 .../main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java | 2 +-
 .../cayenne/dbsync/merge/token/model/SetPrimaryKeyToModel.java    | 2 +-
 cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java | 8 ++++++++
 4 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 3b42178..200e30e 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -40,6 +40,7 @@ CAY-2608 Modeler: NPE when reverse engineering with an auto-adapter DataSource
 CAY-2609 Modeler: can't close dbImport result dialog window
 CAY-2614 Modeler: Connection test result window shown under other windows
 CAY-2616 Modeler: Wrong handling of path with spaces
+CAY-2619 "to-dep PK" related dbimport delta confuses the Modeler
 
 ----------------------------------
 Release: 4.1.B2
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java
index 81d90b1..7f5aa76 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java
@@ -130,7 +130,7 @@ class DbEntityMerger extends AbstractMerger<DataMap, DbEntity> {
     }
 
     private Set<String> upperCaseEntityNames(Collection<? extends Attribute> attributes) {
-        Set<String> names = new HashSet<String>();
+        Set<String> names = new HashSet<>();
         for (Attribute attr : attributes) {
             names.add(attr.getName().toUpperCase());
         }
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/model/SetPrimaryKeyToModel.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/model/SetPrimaryKeyToModel.java
index 308f290..cbf020f 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/model/SetPrimaryKeyToModel.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/token/model/SetPrimaryKeyToModel.java
@@ -35,7 +35,7 @@ public class SetPrimaryKeyToModel extends AbstractToModelToken.Entity {
     private Collection<DbAttribute> primaryKeyOriginal;
     private Collection<DbAttribute> primaryKeyNew;
     private String detectedPrimaryKeyName;
-    private Set<String> primaryKeyNewAttributeNames = new HashSet<String>();
+    private Set<String> primaryKeyNewAttributeNames = new HashSet<>();
 
     public SetPrimaryKeyToModel(DbEntity entity,
             Collection<DbAttribute> primaryKeyOriginal,
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
index c341aa6..cdf5d14 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbEntity.java
@@ -473,6 +473,14 @@ public class DbEntity extends Entity implements ConfigurationNode, DbEntityListe
                         }
                     }
             }
+
+            // check toDep PK for reverse relationships
+            for (DbRelationship rel : getRelationships()) {
+                DbRelationship reverse = rel.getReverseRelationship();
+                if(reverse != null && reverse.isToDependentPK() && !reverse.isValidForDepPk()) {
+                    reverse.setToDependentPK(false);
+                }
+            }
         }
 
         // handle generated key refresh