You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by aw...@apache.org on 2006/12/05 19:54:48 UTC

svn commit: r482737 - /incubator/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java

Author: awhite
Date: Tue Dec  5 10:54:46 2006
New Revision: 482737

URL: http://svn.apache.org/viewvc?view=rev&rev=482737
Log:
Correct bug in our default for the name of an inverse join column within a
join table.  Added configurable property for users to retain the old defaulting
for compatibility if desired.


Modified:
    incubator/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java

Modified: incubator/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java?view=diff&rev=482737&r1=482736&r2=482737
==============================================================================
--- incubator/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java (original)
+++ incubator/openjpa/trunk/openjpa-persistence-jdbc/src/main/java/org/apache/openjpa/persistence/jdbc/PersistenceMappingDefaults.java Tue Dec  5 10:54:46 2006
@@ -44,6 +44,8 @@
 public class PersistenceMappingDefaults
     extends MappingDefaultsImpl {
 
+    private boolean _prependFieldNameToJoinTableInverseJoinColumns = true;
+
     public PersistenceMappingDefaults() {
         setDefaultMissingInfo(true);
         setStoreEnumOrdinal(true);
@@ -52,6 +54,24 @@
         setDiscriminatorColumnName("DTYPE");
     }
 
+    /**
+     * Whether to prepend the field name to the default name of inverse join
+     * columns within join tables.  Defaults to true per spec, but set to false
+     * for compatibility with older versions of OpenJPA.
+     */
+    public boolean getPrependFieldNameToJoinTableInverseJoinColumns() {
+        return _prependFieldNameToJoinTableInverseJoinColumns;
+    }
+
+    /**
+     * Whether to prepend the field name to the default name of inverse join
+     * columns within join tables.  Defaults to true per spec, but set to false
+     * for compatibility with older versions of OpenJPA.
+     */
+    public void setPrependFieldNameToJoinTableInverseJoinColumns(boolean val) {
+        _prependFieldNameToJoinTableInverseJoinColumns = val;
+    }
+
     @Override
     public Object getStrategy(Version vers, boolean adapt) {
         Object strat = super.getStrategy(vers, adapt);
@@ -141,9 +161,10 @@
         Table local, Table foreign, Column col, Object target, boolean inverse,
         int pos, int cols) {
         // if this is a non-inverse collection element key, it must be in
-        // a join table; jpa says to use the target column name,
-        // which is the default
-        if (!inverse && vm == vm.getFieldMapping().getElement()
+        // a join table: if we're not prepending the field name, leave the
+        // default
+        if (!_prependFieldNameToJoinTableInverseJoinColumns && !inverse 
+            && vm == vm.getFieldMapping().getElement()
             && vm.getFieldMapping().getTypeCode() != JavaTypes.MAP)
             return;