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/17 09:49:14 UTC
svn commit: r816085 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/
openjpa-kernel/src/main/java/org/apache/openjpa/conf/
openjpa-kernel/src/main/java/org/apache/openjpa/meta/
openjpa-persistence-jdbc/src/test/java/org/apa...
Author: faywang
Date: Thu Sep 17 07:49:13 2009
New Revision: 816085
URL: http://svn.apache.org/viewvc?rev=816085&view=rev
Log:
OPENJPA-1253: support non-default uni-directional OneToMany using foreign key strategy, using JoinColumn annotation.
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_FK.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_JT.java (with props)
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataDefaults.java
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NoneMetaDataFactory.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/TestSpecCompatibilityOptions.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/compat/persistence_2_0.xml
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java Thu Sep 17 07:49:13 2009
@@ -28,6 +28,7 @@
import java.util.List;
import java.util.Map;
+import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
import org.apache.openjpa.jdbc.meta.strats.BlobValueHandler;
import org.apache.openjpa.jdbc.meta.strats.ByteArrayValueHandler;
@@ -964,8 +965,18 @@
// an association table
FieldMappingInfo info = field.getMappingInfo();
ValueMapping elem = field.getElementMapping();
- return info.getTableName() == null && info.getColumns().isEmpty()
+ boolean useInverseKeyMapping = info.getTableName() == null && info.getColumns().isEmpty()
&& !elem.getValueInfo().getColumns().isEmpty();
+
+ OpenJPAConfiguration conf = field.getRepository().getConfiguration();
+ boolean isNonDefaultMappingAllowed = field.getRepository().
+ getMetaDataFactory().getDefaults().isNonDefaultMappingAllowed(conf);
+ if (isNonDefaultMappingAllowed && field.getValueInfo().getColumns().size() > 0) {
+ // uni-/M-1/joinColumn ==> useInverseKeyMapping (foreign key strategy)
+ field.getElementMapping().getValueInfo().setColumns(field.getValueInfo().getColumns());
+ return true;
+ }
+ return useInverseKeyMapping;
}
/**
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java Thu Sep 17 07:49:13 2009
@@ -64,6 +64,7 @@
private boolean _superclassDiscriminatorStrategyByDefault = true;
private boolean _isAbstractMappingUniDirectional = false;
private boolean _isJoinColumnAllowedForToManyRelation = false;
+ private boolean _isNonDefaultMappingAllowed = false;
/**
* Whether to require exact identity value types when creating object
@@ -476,4 +477,27 @@
public boolean isJoinColumnAllowedForToManyRelation() {
return _isJoinColumnAllowedForToManyRelation;
}
+
+ /**
+ * Whether OpenJPA allows non-default entity relationship mapping.
+ * Prior to OpenJPA 2.0, the non-default entity relationship mapping
+ * is not allowed. JPA 2.0 spec relaxes this restriction. The
+ * default value is false.
+ * @since 2.0.0
+ */
+ public void setNonDefaultMappingAllowed(boolean isNonDefaultMappingAllowed) {
+ _isNonDefaultMappingAllowed = isNonDefaultMappingAllowed;
+ }
+
+ /**
+ * Whether OpenJPA allows non-default entity relationship mapping.
+ * Prior to OpenJPA 2.0, the non-default entity relationship mapping
+ * is not allowed. JPA 2.0 spec relaxes this restriction. The
+ * default value is false.
+ * @since 2.0.0
+ */
+ public boolean isNonDefaultMappingAllowed() {
+ return _isNonDefaultMappingAllowed;
+ }
+
}
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataDefaults.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataDefaults.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataDefaults.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/MetaDataDefaults.java Thu Sep 17 07:49:13 2009
@@ -121,4 +121,10 @@
*/
public boolean isJoinColumnAllowedForToManyRelation(OpenJPAConfiguration conf);
+ /**
+ * Whether non-default mapping is allowed.
+ * @since 2.0.0
+ */
+ public boolean isNonDefaultMappingAllowed(OpenJPAConfiguration conf);
+
}
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NoneMetaDataFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NoneMetaDataFactory.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NoneMetaDataFactory.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/meta/NoneMetaDataFactory.java Thu Sep 17 07:49:13 2009
@@ -167,4 +167,7 @@
return false;
}
+ public boolean isNonDefaultMappingAllowed(OpenJPAConfiguration conf) {
+ return false;
+ }
}
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/EntityC.java Thu Sep 17 07:49:13 2009
@@ -21,8 +21,6 @@
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/TestSpecCompatibilityOptions.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/TestSpecCompatibilityOptions.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/TestSpecCompatibilityOptions.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/TestSpecCompatibilityOptions.java Thu Sep 17 07:49:13 2009
@@ -18,17 +18,30 @@
*/
package org.apache.openjpa.persistence.compat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import javax.persistence.EntityManager;
+import javax.persistence.Query;
import org.apache.openjpa.conf.Compatibility;
import org.apache.openjpa.conf.Specification;
+import org.apache.openjpa.lib.jdbc.AbstractJDBCListener;
+import org.apache.openjpa.lib.jdbc.JDBCEvent;
+import org.apache.openjpa.lib.jdbc.JDBCListener;
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.apache.openjpa.persistence.jdbc.SQLSniffer;
import org.apache.openjpa.persistence.test.AbstractCachedEMFTestCase;
public class TestSpecCompatibilityOptions
extends AbstractCachedEMFTestCase {
+ protected List<String> sql = new ArrayList<String>();
+ protected int sqlCount;
+
/*
* Verifies compatibility options and spec level are appropriate
* for a version 2 persistence.xml
@@ -84,11 +97,11 @@
* a mapped superclass.
*/
public void testMappedSuperClass() {
- OpenJPAEntityManagerFactorySPI emf =
- (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("persistence_2_0",
- "org/apache/openjpa/persistence/compat/" +
- "persistence_2_0.xml");
+ List<Class<?>> types = new ArrayList<Class<?>>();
+ types.add(EntityA.class);
+ types.add(EntityB.class);
+ types.add(MappedSuper.class);
+ OpenJPAEntityManagerFactorySPI emf = createEMF2_0(types);
EntityManager em = null;
try {
em = emf.createEntityManager();
@@ -118,20 +131,95 @@
* Per JPA 2.0, JoinColumn annotation is allowed on OneToMany relations.
*/
public void testJoinColumnOnToManyRelation() {
- OpenJPAEntityManagerFactorySPI emf =
- (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("persistence_2_0",
- "org/apache/openjpa/persistence/compat/" +
- "persistence_2_0.xml");
+ List<Class<?>> types = new ArrayList<Class<?>>();
+ types.add(EntityC.class);
+ types.add(Bi_1ToM_FK.class);
+ types.add(Uni_1ToM_FK.class);
+ types.add(Uni_1ToM_JT.class);
+
+ OpenJPAEntityManagerFactorySPI emf = createEMF2_0(types);
+ EntityManager em = emf.createEntityManager();
+
try {
- EntityManager em = emf.createEntityManager();
// trigger table creation
em.getTransaction().begin();
em.getTransaction().commit();
em.close();
emf.close();
+ if (!SQLSniffer.matches(sql, "CREATE TABLE JnCol_C", "Bi1MFK_ColA"))
+ fail("JoinColumn annotation fails to be with OneToMany relation");
} catch (Exception e) {
fail("JoinColumn annotation fails to be with OneToMany relation");
}
}
+
+ /*
+ * Per JPA 2.0, non-default mapping of uni-directional OneToMany using
+ * foreign key strategy is allowed.
+ */
+ public void testNonDefaultUniOneToManyRelationUsingForeignKey() {
+ List<Class<?>> types = new ArrayList<Class<?>>();
+ types.add(EntityC.class);
+ types.add(Bi_1ToM_FK.class);
+ types.add(Uni_1ToM_FK.class);
+ types.add(Uni_1ToM_JT.class);
+ OpenJPAEntityManagerFactorySPI emf = createEMF2_0(types);
+ EntityManager em = emf.createEntityManager();
+
+ try {
+ // trigger table creation
+ Uni_1ToM_FK uni1mfk = new Uni_1ToM_FK();
+ uni1mfk.setName("test");
+ EntityC c = new EntityC();
+ c.setName("c");
+ List cs = new ArrayList();
+ cs.add(c);
+ uni1mfk.setEntityAs(cs);
+ em.persist(uni1mfk);
+ em.persist(c);
+ em.getTransaction().begin();
+ em.getTransaction().commit();
+ em.close();
+ emf.close();
+ if (!SQLSniffer.matches(sql, "CREATE TABLE JnCol_C", "Uni1MFK_ColA"))
+ fail("JoinColumn annotation fails to be with OneToMany relation");
+ } catch (Exception e) {
+ fail("Non-default uni-directional OneToMany Using foreign key fails");
+ }
+ }
+
+ private OpenJPAEntityManagerFactorySPI createEMF2_0(List<Class<?>> types) {
+ Map<Object,Object> map = new HashMap<Object,Object>();
+ map.put("openjpa.jdbc.JDBCListeners",
+ new JDBCListener[] {
+ this.new Listener()
+ });
+ map.put("openjpa.jdbc.SynchronizeMappings",
+ "buildSchema(ForeignKeys=true,SchemaAction='drop,add')");
+
+ StringBuffer buf = new StringBuffer();
+ for (Class<?> c : types) {
+ if (buf.length() > 0) {
+ buf.append(";");
+ }
+ buf.append(c.getName());
+ }
+ String oldValue =
+ map.containsKey("openjpa.MetaDataFactory") ? "," + map.get("openjpa.MetaDataFactory").toString() : "";
+ map.put("openjpa.MetaDataFactory", "jpa(Types=" + buf.toString() + oldValue + ")");
+ return (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
+ createEntityManagerFactory("persistence_2_0",
+ "org/apache/openjpa/persistence/compat/" +
+ "persistence_2_0.xml", map);
+ }
+
+ public class Listener extends AbstractJDBCListener {
+ @Override
+ public void beforeExecuteStatement(JDBCEvent event) {
+ if (event.getSQL() != null && sql != null) {
+ sql.add(event.getSQL());
+ sqlCount++;
+ }
+ }
+ }
}
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_FK.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_FK.java?rev=816085&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_FK.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_FK.java Thu Sep 17 07:49:13 2009
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.persistence.compat;
+
+import java.util.List;
+
+import javax.persistence.*;
+
+//non-default mapping
+//Sec 11.1.36, Example 3:
+// Unidirectional One-to-Many association using a foreign key mapping
+// In Customer class:
+// @OneToMany(orphanRemoval=true)
+// @JoinColumn(name="CUST_ID") // join column is in table for Order
+// public Set<Order> getOrders() {return orders;}
+
+@Entity
+public class Uni_1ToM_FK {
+
+ @Id
+ @GeneratedValue
+ private long id;
+
+ private String name;
+
+ @OneToMany
+ @JoinColumn(name="Uni1MFK_ColA")
+ private List<EntityC> entityAs = null;
+
+ public long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public List<EntityC> getEntityAs() {
+ return entityAs;
+ }
+
+ public void setEntityAs(List<EntityC> entityAs) {
+ this.entityAs = entityAs;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_FK.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_JT.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_JT.java?rev=816085&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_JT.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_JT.java Thu Sep 17 07:49:13 2009
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openjpa.persistence.compat;
+
+import java.util.List;
+
+import javax.persistence.*;
+
+
+@Entity
+public class Uni_1ToM_JT {
+
+ @Id
+ @GeneratedValue
+ private long id;
+
+ private String name;
+
+ @OneToMany
+ @JoinTable(
+ name="Uni_1TOM_JT_C",
+ joinColumns=
+ @JoinColumn(name="Uni1MJT_ID", referencedColumnName="ID"),
+ inverseJoinColumns=
+ @JoinColumn(name="C_ID", referencedColumnName="ID")
+ )
+ private List<EntityC> entityAs = null;
+
+ public long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public List<EntityC> getEntityAs() {
+ return entityAs;
+ }
+
+ public void setEntityAs(List<EntityC> entityAs) {
+ this.entityAs = entityAs;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/compat/Uni_1ToM_JT.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/compat/persistence_2_0.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/compat/persistence_2_0.xml?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/compat/persistence_2_0.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/compat/persistence_2_0.xml Thu Sep 17 07:49:13 2009
@@ -24,11 +24,5 @@
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0" >
<persistence-unit name="persistence_2_0" transaction-type="RESOURCE_LOCAL">
- <class>org.apache.openjpa.persistence.compat.EntityA</class>
- <class>org.apache.openjpa.persistence.compat.EntityB</class>
- <class>org.apache.openjpa.persistence.compat.EntityC</class>
- <class>org.apache.openjpa.persistence.compat.MappedSuper</class>
- <class>org.apache.openjpa.persistence.compat.Bi_1ToM_FK</class>
-
</persistence-unit>
</persistence>
\ No newline at end of file
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceMetaDataDefaults.java Thu Sep 17 07:49:13 2009
@@ -133,6 +133,7 @@
protected SetterFilter setterFilter = new SetterFilter();
private Boolean _isAbstractMappingUniDirectional = null;
private Boolean _isJoinColumnAllowedForToManyRelation = null;
+ private Boolean _isNonDefaultMappingAllowed = null;
public PersistenceMetaDataDefaults() {
setCallbackMode(CALLBACK_RETHROW | CALLBACK_ROLLBACK |
@@ -884,4 +885,15 @@
_isJoinColumnAllowedForToManyRelation = conf.getCompatibilityInstance().
isJoinColumnAllowedForToManyRelation();
}
+
+ public boolean isNonDefaultMappingAllowed(OpenJPAConfiguration conf) {
+ if (_isNonDefaultMappingAllowed == null)
+ setNonDefaultMappingAllowed(conf);
+ return _isNonDefaultMappingAllowed;
+ }
+
+ public void setNonDefaultMappingAllowed(OpenJPAConfiguration conf) {
+ _isNonDefaultMappingAllowed = conf.getCompatibilityInstance().
+ isNonDefaultMappingAllowed();
+ }
}
Modified: openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java?rev=816085&r1=816084&r2=816085&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java (original)
+++ openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java Thu Sep 17 07:49:13 2009
@@ -187,6 +187,7 @@
} else {
compatibility.setAbstractMappingUniDirectional(true);
compatibility.setJoinColumnAllowedForToManyRelation(true);
+ compatibility.setNonDefaultMappingAllowed(true);
}
return true;
}