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() {