You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by fa...@apache.org on 2009/09/21 04:13:19 UTC

svn commit: r817131 - in /openjpa/trunk/openjpa-persistence-jdbc/src: main/java/org/apache/openjpa/persistence/jdbc/ test/java/org/apache/openjpa/persistence/compat/

Author: faywang
Date: Mon Sep 21 02:13:18 2009
New Revision: 817131

URL: http://svn.apache.org/viewvc?rev=817131&view=rev
Log:
OPENJPA-1253: support non-default bi-directional one to many using Join Table/Join column annotation

Modified:
    openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Bi_1ToM_JT.java
    openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC_B1MJT.java

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java?rev=817131&r1=817130&r2=817131&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/AnnotationPersistenceMappingParser.java Mon Sep 21 02:13:18 2009
@@ -1651,9 +1651,16 @@
     private void parseJoinTable(FieldMapping fm, JoinTable join) {
     	FieldMappingInfo info = fm.getMappingInfo();
         info.setTableName(toTableName(join.schema(), join.name()));
-        parseJoinColumns(fm, info, false, join.joinColumns());
-        parseJoinColumns(fm, fm.getElementMapping().getValueInfo(), false,
-            join.inverseJoinColumns());
+        if (fm.getAssociationType() == FieldMetaData.ONE_TO_MANY && 
+            fm.getMappedBy() != null) { //Bi-/One-To-Many/JoinTable+JoinColumn
+            parseJoinColumns(fm, info, false, join.inverseJoinColumns());
+            parseJoinColumns(fm, fm.getElementMapping().getValueInfo(), false,
+                join.joinColumns());
+        } else {
+            parseJoinColumns(fm, info, false, join.joinColumns());
+            parseJoinColumns(fm, fm.getElementMapping().getValueInfo(), false,
+                join.inverseJoinColumns());
+        }
         addUniqueConstraints(info.getTableName(), fm, info,  
             join.uniqueConstraints());
     }

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Bi_1ToM_JT.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Bi_1ToM_JT.java?rev=817131&r1=817130&r2=817131&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Bi_1ToM_JT.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Bi_1ToM_JT.java Mon Sep 21 02:13:18 2009
@@ -29,7 +29,7 @@
 
     @Id
     @GeneratedValue
-    private long id;
+    private long bid;
 
     private String name;
 
@@ -37,14 +37,14 @@
     @JoinTable(
         name="Bi1MJT_C",
         joinColumns=
-          @JoinColumn(name="C_ID", referencedColumnName="ID"),
+          @JoinColumn(name="C_ID", referencedColumnName="CID"),
           inverseJoinColumns=
-          @JoinColumn(name="Bi1MJT_ID", referencedColumnName="ID")
+          @JoinColumn(name="Bi1MJT_ID", referencedColumnName="BID")
     )
     private List<EntityC_B1MJT> entityCs = null;
     
     public long getId() { 
-        return id; 
+        return bid; 
     }
 
     public String getName() { 

Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC_B1MJT.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC_B1MJT.java?rev=817131&r1=817130&r2=817131&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC_B1MJT.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC_B1MJT.java Mon Sep 21 02:13:18 2009
@@ -25,7 +25,7 @@
 
     @Id
     @GeneratedValue
-    private long id;
+    private long cid;
 
     private String name;
     
@@ -33,7 +33,7 @@
     Bi_1ToM_JT bi1mjt;
 
     public long getId() { 
-        return id; 
+        return cid; 
     }
 
     public String getName() {