You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by jr...@apache.org on 2009/05/29 19:24:55 UTC
svn commit: r780038 - in /openjpa/trunk:
openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persist...
Author: jrbauer
Date: Fri May 29 17:24:54 2009
New Revision: 780038
URL: http://svn.apache.org/viewvc?rev=780038&view=rev
Log:
OPENJPA-1074 Fix for bidirectional ordered relationships. Modified order column tests to be included in compile time enhancement.
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement1.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement2.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement3.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity1.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity2.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity3.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderEntity.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderMappedByEntity.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumnXML.java (with props)
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumn.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMFTestCase.java
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm.xml
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-4.xml
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-5.xml
openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence.xml
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.java?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/RelationToManyInverseKeyFieldStrategy.java Fri May 29 17:24:54 2009
@@ -207,9 +207,13 @@
if (Proxies.isOwner(proxy, sm, field.getIndex()))
ct = proxy.getChangeTracker();
}
+ Column order = field.getOrderColumn();
// if no fine-grained change tracking then just delete and reinsert
- if (ct == null || !ct.isTracking()) {
+ // if no fine-grained change tracking or if an item was removed
+ // from an ordered collection, delete and reinsert
+ if (ct == null || !ct.isTracking() ||
+ (order != null && !ct.getRemoved().isEmpty())) {
delete(sm, store, rm);
insert(sm, rm, obj);
return;
@@ -229,7 +233,7 @@
int seq = ct.getNextSequence();
for (Iterator itr = add.iterator(); itr.hasNext(); seq++)
updateInverse(ctx, itr.next(), rel, rm, sm, seq);
- if (field.getOrderColumn() != null)
+ if (order != null)
ct.setNextSequence(seq);
}
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement1.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement1.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement1.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement1.java Fri May 29 17:24:54 2009
@@ -0,0 +1,59 @@
+/*
+ * 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.jdbc.order;
+
+public class BaseTestElement1 {
+
+ private int id;
+
+ private String name;
+
+
+ public BaseTestElement1() {
+ }
+
+ public BaseTestElement1(String name) {
+ this.name = name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof BaseTestElement1) {
+ BaseTestElement1 bte = (BaseTestElement1)obj;
+ return getId() == bte.getId() &&
+ bte.getName().equalsIgnoreCase(bte.getName());
+ }
+ return false;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement1.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement2.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement2.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement2.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement2.java Fri May 29 17:24:54 2009
@@ -0,0 +1,59 @@
+/*
+ * 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.jdbc.order;
+
+public class BaseTestElement2 {
+
+ private int id;
+
+ private String name;
+
+
+ public BaseTestElement2() {
+ }
+
+ public BaseTestElement2(String name) {
+ this.name = name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof BaseTestElement2) {
+ BaseTestElement2 bte = (BaseTestElement2)obj;
+ return getId() == bte.getId() &&
+ bte.getName().equalsIgnoreCase(bte.getName());
+ }
+ return false;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement2.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement3.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement3.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement3.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement3.java Fri May 29 17:24:54 2009
@@ -0,0 +1,59 @@
+/*
+ * 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.jdbc.order;
+
+public class BaseTestElement3 {
+
+ private int id;
+
+ private String name;
+
+
+ public BaseTestElement3() {
+ }
+
+ public BaseTestElement3(String name) {
+ this.name = name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof BaseTestElement3) {
+ BaseTestElement3 bte = (BaseTestElement3)obj;
+ return getId() == bte.getId() &&
+ bte.getName().equalsIgnoreCase(bte.getName());
+ }
+ return false;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestElement3.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity1.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity1.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity1.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity1.java Fri May 29 17:24:54 2009
@@ -0,0 +1,68 @@
+/*
+ * 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.jdbc.order;
+
+import java.util.List;
+import java.util.Set;
+
+/*
+ * Entity used for testing custom column definitions base values.
+ */
+public class BaseTestEntity1 {
+
+ private int id;
+
+ private List<BaseTestElement1> one2Melems;
+
+ private List<BaseTestElement1> m2melems;
+
+ private Set<BaseTestElement1> collelems;
+
+ public void setOne2Melems(List<BaseTestElement1> one2Melems) {
+ this.one2Melems = one2Melems;
+ }
+
+ public List<BaseTestElement1> getOne2Melems() {
+ return one2Melems;
+ }
+
+ public void setCollelems(Set<BaseTestElement1> collelems) {
+ this.collelems = collelems;
+ }
+
+ public Set<BaseTestElement1> getCollelems() {
+ return collelems;
+ }
+
+ public void setM2melems(List<BaseTestElement1> m2melems) {
+ this.m2melems = m2melems;
+ }
+
+ public List<BaseTestElement1> getM2melems() {
+ return m2melems;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity1.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity2.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity2.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity2.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity2.java Fri May 29 17:24:54 2009
@@ -0,0 +1,68 @@
+/*
+ * 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.jdbc.order;
+
+import java.util.List;
+import java.util.Set;
+
+/*
+ * Entity used for testing custom column defintions base values.
+ */
+public class BaseTestEntity2 {
+
+ private int id;
+
+ private List<BaseTestElement2> one2Melems;
+
+ private List<BaseTestElement2> m2melems;
+
+ private Set<BaseTestElement2> collelems;
+
+ public void setOne2Melems(List<BaseTestElement2> one2Melems) {
+ this.one2Melems = one2Melems;
+ }
+
+ public List<BaseTestElement2> getOne2Melems() {
+ return one2Melems;
+ }
+
+ public void setCollelems(Set<BaseTestElement2> collelems) {
+ this.collelems = collelems;
+ }
+
+ public Set<BaseTestElement2> getCollelems() {
+ return collelems;
+ }
+
+ public void setM2melems(List<BaseTestElement2> m2melems) {
+ this.m2melems = m2melems;
+ }
+
+ public List<BaseTestElement2> getM2melems() {
+ return m2melems;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity2.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity3.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity3.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity3.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity3.java Fri May 29 17:24:54 2009
@@ -0,0 +1,68 @@
+/*
+ * 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.jdbc.order;
+
+import java.util.List;
+import java.util.Set;
+
+/*
+ * Entity used for testing custom column defintions base values.
+ */
+public class BaseTestEntity3 {
+
+ private int id;
+
+ private List<BaseTestElement3> one2Melems;
+
+ private List<BaseTestElement3> m2melems;
+
+ private Set<BaseTestElement3> collelems;
+
+ public void setOne2Melems(List<BaseTestElement3> one2Melems) {
+ this.one2Melems = one2Melems;
+ }
+
+ public List<BaseTestElement3> getOne2Melems() {
+ return one2Melems;
+ }
+
+ public void setCollelems(Set<BaseTestElement3> collelems) {
+ this.collelems = collelems;
+ }
+
+ public Set<BaseTestElement3> getCollelems() {
+ return collelems;
+ }
+
+ public void setM2melems(List<BaseTestElement3> m2melems) {
+ this.m2melems = m2melems;
+ }
+
+ public List<BaseTestElement3> getM2melems() {
+ return m2melems;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public int getId() {
+ return id;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BaseTestEntity3.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderEntity.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderEntity.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderEntity.java Fri May 29 17:24:54 2009
@@ -0,0 +1,81 @@
+/*
+ * 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.jdbc.order;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
+@Entity
+public class BiOrderEntity implements java.io.Serializable {
+
+ private static final long serialVersionUID = -1059986449941927485L;
+
+ @Id
+ private int id;
+
+ private String name;
+
+ @ManyToOne
+ private BiOrderMappedByEntity bo2mbEntity;
+
+ public BiOrderEntity() {
+ }
+
+ public BiOrderEntity(String name) {
+ this.id = name.charAt(0) - 'A' + 1;
+ this.name = name;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public BiOrderMappedByEntity getEntity() {
+ return bo2mbEntity;
+ }
+
+ public void setEntity(BiOrderMappedByEntity ent) {
+ this.bo2mbEntity = ent;
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof BiOrderEntity) {
+ BiOrderEntity boe = (BiOrderEntity)obj;
+ return boe.getId() == getId() &&
+ boe.getName().equals(getName());
+ }
+ return false;
+ }
+}
+
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderEntity.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderMappedByEntity.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderMappedByEntity.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderMappedByEntity.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderMappedByEntity.java Fri May 29 17:24:54 2009
@@ -0,0 +1,87 @@
+/*
+ * 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.jdbc.order;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderColumn;
+
+@Entity
+public class BiOrderMappedByEntity {
+
+ @Id
+ private int id;
+
+ @OneToMany(mappedBy="bo2mbEntity")
+ @OrderColumn(name="bo2mEntities_ORDER")
+ private List<BiOrderEntity> bo2mEntities;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+
+ public List<BiOrderEntity> getBo2mEntities() {
+ return bo2mEntities;
+ }
+
+ public void setBo2mEntity(List<BiOrderEntity> names) {
+ this.bo2mEntities = names;
+ }
+
+ public void addBo2mEntity(BiOrderEntity name) {
+ if( bo2mEntities == null) {
+ bo2mEntities = new ArrayList<BiOrderEntity>();
+ }
+ bo2mEntities.add(name);
+ }
+
+ public BiOrderEntity removeBo2mEntity(int location) {
+ BiOrderEntity rtnVal = null;
+ if( bo2mEntities != null) {
+ rtnVal = bo2mEntities.remove(location);
+ }
+ return rtnVal;
+ }
+
+ public void insertBo2mEntity(int location, BiOrderEntity name) {
+ if( bo2mEntities == null) {
+ bo2mEntities = new ArrayList<BiOrderEntity>();
+ }
+ bo2mEntities.add(location, name);
+ }
+
+ public boolean equals(Object obj) {
+ if (obj instanceof BiOrderMappedByEntity) {
+ BiOrderMappedByEntity boe = (BiOrderMappedByEntity)obj;
+ return boe.getId() == getId();
+ }
+ return false;
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/BiOrderMappedByEntity.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumn.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumn.java?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumn.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumn.java Fri May 29 17:24:54 2009
@@ -18,42 +18,25 @@
*/
package org.apache.openjpa.persistence.jdbc.order;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
-import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.HashSet;
-import java.util.LinkedHashSet;
import java.util.List;
import java.util.Random;
-import java.util.Set;
import java.util.TreeMap;
import javax.persistence.Query;
-import org.apache.openjpa.conf.OpenJPAConfiguration;
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
import org.apache.openjpa.jdbc.meta.ClassMapping;
import org.apache.openjpa.jdbc.meta.FieldMapping;
import org.apache.openjpa.jdbc.schema.Column;
-import org.apache.openjpa.jdbc.schema.Sequence;
-import org.apache.openjpa.jdbc.schema.Table;
import org.apache.openjpa.jdbc.sql.DBDictionary;
-import org.apache.openjpa.lib.meta.MetaDataSerializer;
-import org.apache.openjpa.meta.ClassMetaData;
-import org.apache.openjpa.meta.MetaDataRepository;
-import org.apache.openjpa.persistence.ArgumentException;
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
-import org.apache.openjpa.persistence.OpenJPAPersistence;
-import org.apache.openjpa.persistence.jdbc.XMLPersistenceMappingParser;
-import org.apache.openjpa.persistence.jdbc.XMLPersistenceMappingSerializer;
import org.apache.openjpa.persistence.test.SingleEMFTestCase;
public class TestOrderColumn extends SingleEMFTestCase {
@@ -66,7 +49,7 @@
Trainer.class, Game.class, Inning.class,
Course.class, Student.class,
Owner.class, Bicycle.class, Car.class, Home.class,
- Widget.class);
+ Widget.class,BiOrderMappedByEntity.class, BiOrderEntity.class );
try {
createQueryData();
} catch (Exception e) {
@@ -140,6 +123,74 @@
/*
* Verifies that a collection remains contiguous and element
+ * indexes are reordered if an element is removed for a
+ * OneToMany relationship
+ */
+ public void testOneToManyBiDirElementRemoval() {
+ OpenJPAEntityManagerSPI em = emf.createEntityManager();
+
+ // Verify field name is the default via fm
+ validateOrderColumnName(BiOrderMappedByEntity.class, "bo2mEntities",
+ "bo2mEntities_ORDER");
+
+ // Create some data
+ BiOrderMappedByEntity bome = new BiOrderMappedByEntity();
+ bome.setId(1);
+ List<BiOrderEntity> boea = new ArrayList<BiOrderEntity>();
+ for (int i = 0; i < 5; i++) {
+ BiOrderEntity boe = new BiOrderEntity();
+ boe.setId(i+1);
+ boe.setName("Entity" + i);
+ boe.setEntity(bome);
+ boea.add(boe);
+ bome.addBo2mEntity(boe);
+ }
+
+ // Persist
+ em.getTransaction().begin();
+ em.persist(bome);
+ for (BiOrderEntity boe : boea) {
+ em.persist(boe);
+ }
+ em.getTransaction().commit();
+ em.refresh(bome);
+ em.clear();
+
+ // Verify order is correct.
+ BiOrderMappedByEntity newBome = em.find(BiOrderMappedByEntity.class,
+ bome.getId());
+ assertNotNull(newBome);
+ for (int i = 0; i < 5 ; i++) {
+ assertEquals(newBome.getBo2mEntities().get(i), boea.get(i));
+ }
+
+ // Remove an item
+ em.getTransaction().begin();
+ newBome.getBo2mEntities().get(2).setEntity(null);
+ newBome.removeBo2mEntity(2);
+ boea.remove(2);
+ em.getTransaction().commit();
+ em.clear();
+
+ // Simple assertion via find
+ newBome = em.find(BiOrderMappedByEntity.class, bome.getId());
+ assertNotNull(newBome);
+ assertNotNull(newBome.getBo2mEntities());
+ assertEquals(boea.size(), newBome.getBo2mEntities().size());
+ for (int i = 0; i < boea.size() ; i++) {
+ assertEquals(newBome.getBo2mEntities().get(i), (boea.get(i)));
+ }
+
+ // Stronger assertion via INDEX value
+ validateIndexAndValues(em, "BiOrderMappedByEntity", "bo2mEntities", 0,
+ boea.toArray(), "id",
+ bome.getId());
+
+ em.close();
+ }
+
+ /*
+ * Verifies that a collection remains contiguous and element
* indexes are reordered if an element is removed for an
* ElementCollection
*/
@@ -181,23 +232,28 @@
// Remove some dates
em.getTransaction().begin();
- game.getRainDates().remove(4);
+ newGame.getRainDates().remove(4);
rainDates.remove(4);
- game.getRainDates().remove(2);
+ newGame.getRainDates().remove(2);
rainDates.remove(2);
em.getTransaction().commit();
em.clear();
newGame = em.find(Game.class, game.getId());
assertNotNull(newGame);
- assertNotNull(game.getRainDates());
- assertEquals(8, game.getRainDates().size());
+ assertNotNull(newGame.getRainDates());
+ assertEquals(8, newGame.getRainDates().size());
// Verify the order
- for (int i = 0; i < game.getRainDates().size(); i++) {
- assertEquals(game.getRainDates().get(i),
- rainDates.get(i));
+ for (int i = 0; i < newGame.getRainDates().size(); i++) {
+ assertEquals(newGame.getRainDates().get(i).toString(),
+ rainDates.get(i).toString());
}
+ // Stronger assertion via INDEX value
+ validateCollIndexAndValues(em, "Game", "rainDates", 0,
+ newGame.getRainDates().toArray(), "id",
+ newGame.getId());
+
em.close();
}
/*
@@ -643,34 +699,6 @@
em.close();
}
- /*
- * Validates the use of the nullable attribute on OrderColumn through
- * an entity defined in orm.xml
- */
- public void testOrderColumnNullableFalse() {
-
- OpenJPAEntityManagerFactorySPI emf1 =
- (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("BaseNoNullTest",
- "org/apache/openjpa/persistence/jdbc/order/" +
- "order-persistence-4.xml");
-
- validateOrderColumnNullable(emf1, BaseTestEntity.class,
- "one2Melems", false);
-
- validateOrderColumnNullable(emf1, BaseTestEntity.class,
- "collelems", false);
-
- validateOrderColumnNullable(emf1, BaseTestEntity.class,
- "m2melems", false);
-
- try {
- if (emf1 != null)
- cleanupEMF(emf1);
- } catch (Exception e) {
- fail(e.getMessage());
- }
- }
/*
* Validates the use of the updatable on OrderColumn. insertable=false
@@ -712,76 +740,6 @@
}
/*
- * Validates the use of the columnDefinition attribute on OrderColumn. This
- * test will be skipped unless the database in use is Derby since the
- * annotation column definition attribute value is hard coded and all
- * databases may not support the supplied column definition.
- */
- public void testOrderColumnColumnDefinition() {
- if (!isTargetPlatform("derby")) {
- return;
- }
-
- OpenJPAEntityManagerFactorySPI emf1 =
- (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("ColDefTest",
- "org/apache/openjpa/persistence/jdbc/order/" +
- "order-persistence-2.xml");
-
- // Create the EM. This will spark the mapping tool.
- OpenJPAEntityManagerSPI em = emf1.createEntityManager();
- //
- // Create a collection using a custom column definition
- validateOrderColumnDef(emf1, ColDefTestEntity.class,
- "one2Mcoldef", "BIGINT");
-
- validateOrderColumnDef(emf1, ColDefTestEntity.class,
- "collcoldef", "BIGINT");
-
- validateOrderColumnDef(emf1, ColDefTestEntity.class,
- "m2mcoldef", "BIGINT");
-
- // Add and query some values
- ColDefTestEntity cdent = new ColDefTestEntity();
-
- ColDefTestElement cdel1 = new ColDefTestElement("Element1");
- ColDefTestElement cdel2 = new ColDefTestElement("Element2");
- ColDefTestElement cdel3 = new ColDefTestElement("Element3");
-
- List<ColDefTestElement> one2Mcoldef =
- new ArrayList<ColDefTestElement>();
- one2Mcoldef.add(cdel3);
- one2Mcoldef.add(cdel2);
- one2Mcoldef.add(cdel1);
- cdent.setOne2Mcoldef(one2Mcoldef);
-
- Set<ColDefTestElement> collcoldef =
- new LinkedHashSet<ColDefTestElement>();
- collcoldef.add(cdel1);
- collcoldef.add(cdel2);
- collcoldef.add(cdel3);
- cdent.setCollcoldef(collcoldef);
-
- List<ColDefTestElement> m2mcoldef = new ArrayList<ColDefTestElement>();
- m2mcoldef.add(cdel2);
- m2mcoldef.add(cdel1);
- m2mcoldef.add(cdel3);
- cdent.setM2mcoldef(m2mcoldef);
-
- em.getTransaction().begin();
- em.persist(cdent);
- em.getTransaction().commit();
-
- em.close();
- try {
- if (emf1 != null)
- cleanupEMF(emf1);
- } catch (Exception e) {
- fail(e.getMessage());
- }
- }
-
- /*
* Validates the use of the table attribute on OrderColumn with
* o2o, o2m, m2m, and collection table - with and without join
* tables.
@@ -861,37 +819,6 @@
em.close();
}
- /**
- * Validates the use of the table attribute defined in XML
- */
- public void testOrderColumnTableXML() {
-
- OpenJPAEntityManagerFactorySPI emf1 =
- (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("TableTest",
- "org/apache/openjpa/persistence/jdbc/order/" +
- "order-persistence-5.xml");
-
- OpenJPAEntityManagerSPI em = emf1.createEntityManager();
-
- validateOrderColumnTable(emf1, BaseTestEntity.class, "one2Melems",
- "xml_o2m_table", "one2MOrder");
-
- validateOrderColumnTable(emf1, BaseTestEntity.class, "m2melems",
- "xml_m2m_table", "m2morder");
-
- validateOrderColumnTable(emf1, BaseTestEntity.class, "collelems",
- "xml_coll_table", "collelems_ORDER");
-
- em.close();
- try {
- if (emf1 != null)
- cleanupEMF(emf1);
- } catch (Exception e) {
- fail(e.getMessage());
- }
- }
-
/*
* Validates the use of order column (via INDEX) in the predicate of a
* JPQL query.
@@ -960,104 +887,6 @@
}
/*
- * Validates OrderBy and OrderColumn should not be specified together per
- * the JPA 2.0 spec.
- */
- public void testOrderColumnOrderBy() {
-
- OpenJPAEntityManagerFactorySPI emf1 = null;
- OpenJPAEntityManagerSPI em = null;
- try {
- emf1 = (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("ObOcTest",
- "org/apache/openjpa/persistence/jdbc/order/" +
- "order-persistence-3.xml");
-
- em = emf1.createEntityManager();
-
- ObOcEntity ent = new ObOcEntity();
- List<Integer> intList = new ArrayList<Integer>();
- intList.add(new Integer(10));
- intList.add(new Integer(20));
- ent.setIntList(intList);
-
- em.getTransaction().begin();
- em.persist(intList);
- em.getTransaction().commit();
-
- em.close();
- em = null;
- fail("An exception should have been thrown.");
- } catch (Exception e) {
- assertException(e, ArgumentException.class);
- } finally {
- if (em != null)
- em.close();
- }
- try {
- if (emf1 != null)
- cleanupEMF(emf1);
- } catch (Exception e) {
- fail(e.getMessage());
- }
- }
-
- public void testOrderColumnMetaDataSerialization()
- throws Exception {
-
- OpenJPAEntityManagerFactorySPI emf1 =
- (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
- createEntityManagerFactory("BaseTest",
- "org/apache/openjpa/persistence/jdbc/order/" +
- "order-persistence.xml");
-
- OpenJPAConfiguration conf = emf1.getConfiguration();
- MetaDataRepository repos = conf.newMetaDataRepositoryInstance();
-
- // Force entity resolution
- repos.getMetaData(BaseTestEntity.class, null, true);
-
- XMLPersistenceMappingSerializer ser =
- new XMLPersistenceMappingSerializer((JDBCConfiguration)conf);
- ser.addAll(repos);
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- ser.serialize(new OutputStreamWriter(out), MetaDataSerializer.PRETTY);
- byte[] bytes = out.toByteArray();
-
- XMLPersistenceMappingParser parser =
- new XMLPersistenceMappingParser((JDBCConfiguration)conf);
- parser.parse(new InputStreamReader
- (new ByteArrayInputStream(bytes)), "bytes");
- MetaDataRepository mdr2 = parser.getRepository();
-
- ClassMetaData _entityMeta2 =
- mdr2.getMetaData(BaseTestEntity.class, null, true);
-
- // Assert metadata is populated correctly
- FieldMapping fm = (FieldMapping)_entityMeta2.getField("one2Melems");
- Column oc = fm.getOrderColumn();
- assertNotNull(oc);
- assertEquals(oc.getName(),"one2MOrder");
-
- fm = (FieldMapping)_entityMeta2.getField("m2melems");
- oc = fm.getOrderColumn();
- assertNotNull(oc);
- assertEquals(oc.getName(),"m2morder");
-
- fm = (FieldMapping)_entityMeta2.getField("collelems");
- oc = fm.getOrderColumn();
- assertNotNull(oc);
- assertEquals(oc.getName(),"collelems_ORDER");
-
- try {
- if (emf1 != null)
- cleanupEMF(emf1);
- } catch (Exception e) {
- fail(e.getMessage());
- }
- }
-
- /*
* Create the data used by the query tests
*/
private void createQueryData() {
@@ -1126,7 +955,34 @@
assertEquals(val, objs[i]);
}
}
+
+ private void validateCollIndexAndValues(OpenJPAEntityManagerSPI em,
+ String entity, String indexedCol, int base, Object[] objs, String
+ idField, Object idValue) {
+ String queryString =
+ "SELECT INDEX(b), b FROM " + entity + " a, IN(a." + indexedCol
+ + ") b WHERE a." + idField + " = :idVal";
+ em.clear();
+ Query qry = em.createQuery(queryString);
+ qry.setParameter("idVal", idValue);
+ List rlist = qry.getResultList();
+ assertNotNull(rlist);
+ assertEquals(objs.length, rlist.size());
+ TreeMap<Long, Object> objMap = new TreeMap<Long, Object>();
+ for (int i = 0; i < objs.length; i++)
+ {
+ Object[] rvals = (Object[])rlist.get(i);
+ Long idx = (Long)rvals[0];
+ Object objVal = rvals[1];
+ objMap.put(idx, objVal);
+ }
+ for (int i = 0; i < objs.length; i++) {
+ Object val = objMap.get((new Long(base + i)));
+ assertEquals(val, objs[i]);
+ }
+}
+
private void validateOrderColumnName(Class clazz, String fieldName,
String columnName) {
validateOrderColumnName(emf, clazz, fieldName, columnName);
@@ -1161,20 +1017,6 @@
columnName));
}
- private void validateOrderColumnDef(
- OpenJPAEntityManagerFactorySPI emf1, Class clazz, String fieldName,
- String type) {
- Column oc = getOrderColumn(emf1, clazz, fieldName);
- assertEquals(type, oc.getTypeName());
- }
-
- private void validateOrderColumnNullable(
- OpenJPAEntityManagerFactorySPI emf1, Class clazz, String fieldName,
- boolean nullable) {
- Column oc = getOrderColumn(emf1, clazz, fieldName);
- assertEquals(nullable, !oc.isNotNull());
- }
-
private void validateOrderColumnUpdatable(
OpenJPAEntityManagerFactorySPI emf1, Class clazz, String fieldName,
boolean updatable) {
@@ -1227,25 +1069,4 @@
}
return false;
}
- /**
- * Closes a specific entity manager factory and cleans up
- * associated tables.
- */
- private void cleanupEMF(OpenJPAEntityManagerFactorySPI emf1)
- throws Exception {
-
- if (emf1 == null)
- return;
-
- try {
- clear(emf1);
- } catch (Exception e) {
- // if a test failed, swallow any exceptions that happen
- // during tear-down, as these just mask the original problem.
- if (testResult.wasSuccessful())
- throw e;
- } finally {
- closeEMF(emf1);
- }
- }
}
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumnXML.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumnXML.java?rev=780038&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumnXML.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumnXML.java Fri May 29 17:24:54 2009
@@ -0,0 +1,387 @@
+/*
+ * 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.jdbc.order;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.util.ArrayList;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.openjpa.conf.OpenJPAConfiguration;
+import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
+import org.apache.openjpa.jdbc.meta.ClassMapping;
+import org.apache.openjpa.jdbc.meta.FieldMapping;
+import org.apache.openjpa.jdbc.schema.Column;
+import org.apache.openjpa.jdbc.sql.DBDictionary;
+import org.apache.openjpa.lib.meta.MetaDataSerializer;
+import org.apache.openjpa.meta.ClassMetaData;
+import org.apache.openjpa.meta.MetaDataRepository;
+import org.apache.openjpa.persistence.ArgumentException;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
+import org.apache.openjpa.persistence.OpenJPAPersistence;
+import org.apache.openjpa.persistence.jdbc.XMLPersistenceMappingParser;
+import org.apache.openjpa.persistence.jdbc.XMLPersistenceMappingSerializer;
+import org.apache.openjpa.persistence.test.PersistenceTestCase;
+
+public class TestOrderColumnXML extends PersistenceTestCase {
+
+ /*
+ * Validates the use of the nullable attribute on OrderColumn through
+ * an entity defined in orm.xml
+ */
+ public void testOrderColumnNullableFalse() {
+
+ OpenJPAEntityManagerFactorySPI emf1 =
+ (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
+ createEntityManagerFactory("BaseNoNullTest",
+ "org/apache/openjpa/persistence/jdbc/order/" +
+ "order-persistence-4.xml");
+
+ OpenJPAConfiguration conf = emf1.getConfiguration();
+ MetaDataRepository repos = conf.getMetaDataRepositoryInstance();
+
+ // Force entity resolution
+ repos.getMetaData(BaseTestEntity2.class, null, true);
+
+ OpenJPAEntityManagerSPI em = emf1.createEntityManager();
+
+ validateOrderColumnNullable(emf1, BaseTestEntity2.class,
+ "one2Melems", false);
+
+ validateOrderColumnNullable(emf1, BaseTestEntity2.class,
+ "collelems", false);
+
+ validateOrderColumnNullable(emf1, BaseTestEntity2.class,
+ "m2melems", false);
+
+ em.close();
+ try {
+ if (emf1 != null)
+ cleanupEMF(emf1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ }
+
+ /*
+ * Validates the use of the columnDefinition attribute on OrderColumn. This
+ * test will be skipped unless the database in use is Derby since the
+ * annotation column definition attribute value is hard coded and all
+ * databases may not support the supplied column definition.
+ */
+ public void testOrderColumnColumnDefinition() {
+ if (!isTargetPlatform("derby")) {
+ return;
+ }
+
+ OpenJPAEntityManagerFactorySPI emf1 =
+ (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
+ createEntityManagerFactory("ColDefTest",
+ "org/apache/openjpa/persistence/jdbc/order/" +
+ "order-persistence-2.xml");
+
+ // Create the EM. This will spark the mapping tool.
+ OpenJPAEntityManagerSPI em = emf1.createEntityManager();
+ //
+ // Create a collection using a custom column definition
+ validateOrderColumnDef(emf1, ColDefTestEntity.class,
+ "one2Mcoldef", "BIGINT");
+
+ validateOrderColumnDef(emf1, ColDefTestEntity.class,
+ "collcoldef", "BIGINT");
+
+ validateOrderColumnDef(emf1, ColDefTestEntity.class,
+ "m2mcoldef", "BIGINT");
+
+ // Add and query some values
+ ColDefTestEntity cdent = new ColDefTestEntity();
+
+ ColDefTestElement cdel1 = new ColDefTestElement("Element1");
+ ColDefTestElement cdel2 = new ColDefTestElement("Element2");
+ ColDefTestElement cdel3 = new ColDefTestElement("Element3");
+
+ List<ColDefTestElement> one2Mcoldef =
+ new ArrayList<ColDefTestElement>();
+ one2Mcoldef.add(cdel3);
+ one2Mcoldef.add(cdel2);
+ one2Mcoldef.add(cdel1);
+ cdent.setOne2Mcoldef(one2Mcoldef);
+
+ Set<ColDefTestElement> collcoldef =
+ new LinkedHashSet<ColDefTestElement>();
+ collcoldef.add(cdel1);
+ collcoldef.add(cdel2);
+ collcoldef.add(cdel3);
+ cdent.setCollcoldef(collcoldef);
+
+ List<ColDefTestElement> m2mcoldef = new ArrayList<ColDefTestElement>();
+ m2mcoldef.add(cdel2);
+ m2mcoldef.add(cdel1);
+ m2mcoldef.add(cdel3);
+ cdent.setM2mcoldef(m2mcoldef);
+
+ em.getTransaction().begin();
+ em.persist(cdent);
+ em.getTransaction().commit();
+
+ em.close();
+ try {
+ if (emf1 != null)
+ cleanupEMF(emf1);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ /**
+ * Validates the use of the table attribute defined in XML
+ */
+ public void testOrderColumnTableXML() {
+
+ OpenJPAEntityManagerFactorySPI emf1 =
+ (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
+ createEntityManagerFactory("TableTest",
+ "org/apache/openjpa/persistence/jdbc/order/" +
+ "order-persistence-5.xml");
+
+ OpenJPAEntityManagerSPI em = emf1.createEntityManager();
+
+ validateOrderColumnTable(emf1, BaseTestEntity3.class, "one2Melems",
+ "xml_o2m_table", "one2MOrder");
+
+ validateOrderColumnTable(emf1, BaseTestEntity3.class, "m2melems",
+ "xml_m2m_table", "m2morder");
+
+ validateOrderColumnTable(emf1, BaseTestEntity3.class, "collelems",
+ "xml_coll_table", "collelems_ORDER");
+
+ em.close();
+ try {
+ if (emf1 != null)
+ cleanupEMF(emf1);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+
+ /*
+ * Validates OrderBy and OrderColumn should not be specified together per
+ * the JPA 2.0 spec.
+ */
+ public void testOrderColumnOrderBy() {
+
+ OpenJPAEntityManagerFactorySPI emf1 = null;
+ OpenJPAEntityManagerSPI em = null;
+ try {
+ emf1 = (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
+ createEntityManagerFactory("ObOcTest",
+ "org/apache/openjpa/persistence/jdbc/order/" +
+ "order-persistence-3.xml");
+
+ em = emf1.createEntityManager();
+
+ ObOcEntity ent = new ObOcEntity();
+ List<Integer> intList = new ArrayList<Integer>();
+ intList.add(new Integer(10));
+ intList.add(new Integer(20));
+ ent.setIntList(intList);
+
+ em.getTransaction().begin();
+ em.persist(intList);
+ em.getTransaction().commit();
+
+ em.close();
+ em = null;
+ fail("An exception should have been thrown.");
+ } catch (Exception e) {
+ assertException(e, ArgumentException.class);
+ } finally {
+ if (em != null)
+ em.close();
+ }
+ try {
+ if (emf1 != null)
+ cleanupEMF(emf1);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ public void testOrderColumnMetaDataSerialization()
+ throws Exception {
+
+ OpenJPAEntityManagerFactorySPI emf1 =
+ (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
+ createEntityManagerFactory("BaseTest",
+ "org/apache/openjpa/persistence/jdbc/order/" +
+ "order-persistence.xml");
+
+ OpenJPAConfiguration conf = emf1.getConfiguration();
+ MetaDataRepository repos = conf.newMetaDataRepositoryInstance();
+
+ // Force entity resolution
+ repos.getMetaData(BaseTestEntity1.class, null, true);
+
+ XMLPersistenceMappingSerializer ser =
+ new XMLPersistenceMappingSerializer((JDBCConfiguration)conf);
+ ser.addAll(repos);
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ser.serialize(new OutputStreamWriter(out), MetaDataSerializer.PRETTY);
+ byte[] bytes = out.toByteArray();
+
+ XMLPersistenceMappingParser parser =
+ new XMLPersistenceMappingParser((JDBCConfiguration)conf);
+ parser.parse(new InputStreamReader
+ (new ByteArrayInputStream(bytes)), "bytes");
+ MetaDataRepository mdr2 = parser.getRepository();
+
+ ClassMetaData _entityMeta2 =
+ mdr2.getMetaData(BaseTestEntity1.class, null, true);
+
+ // Assert metadata is populated correctly
+ FieldMapping fm = (FieldMapping)_entityMeta2.getField("one2Melems");
+ Column oc = fm.getOrderColumn();
+ assertNotNull(oc);
+ assertEquals(oc.getName(),"one2MOrder");
+
+ fm = (FieldMapping)_entityMeta2.getField("m2melems");
+ oc = fm.getOrderColumn();
+ assertNotNull(oc);
+ assertEquals(oc.getName(),"m2morder");
+
+ fm = (FieldMapping)_entityMeta2.getField("collelems");
+ oc = fm.getOrderColumn();
+ assertNotNull(oc);
+ assertEquals(oc.getName(),"collelems_ORDER");
+
+ try {
+ if (emf1 != null)
+ cleanupEMF(emf1);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ private Column getOrderColumn(OpenJPAEntityManagerFactorySPI emf1,
+ Class clazz, String fieldName) {
+ JDBCConfiguration conf = (JDBCConfiguration) emf1.getConfiguration();
+ ClassMapping cls = conf.getMappingRepositoryInstance().
+ getMapping(clazz, null, true);
+ FieldMapping fm = cls.getFieldMapping(fieldName);
+ Column oc = fm.getOrderColumn();
+ assertNotNull(oc);
+ return oc;
+ }
+
+ private void validateOrderColumnTable(
+ OpenJPAEntityManagerFactorySPI emf1,
+ Class clazz, String fieldName, String tableName,
+ String columnName) {
+ Column oc = getOrderColumn(emf1, clazz, fieldName);
+ // Verify the oc has the correct table name
+ assertTrue(oc.getTableName().equalsIgnoreCase(tableName));
+ // Verify the table exists in the db
+ assertTrue(tableAndColumnExists(emf1, null, tableName, null,
+ columnName));
+ }
+
+ private void validateOrderColumnDef(
+ OpenJPAEntityManagerFactorySPI emf1, Class clazz, String fieldName,
+ String type) {
+ Column oc = getOrderColumn(emf1, clazz, fieldName);
+ assertEquals(type, oc.getTypeName());
+ }
+
+ private void validateOrderColumnNullable(
+ OpenJPAEntityManagerFactorySPI emf1, Class clazz, String fieldName,
+ boolean nullable) {
+ Column oc = getOrderColumn(emf1, clazz, fieldName);
+ assertEquals(nullable, !oc.isNotNull());
+ }
+
+
+ /**
+ * Method to verify a table was created for the given name and schema
+ */
+ private boolean tableAndColumnExists(OpenJPAEntityManagerFactorySPI emf1,
+ OpenJPAEntityManagerSPI em, String tableName, String schemaName,
+ String columnName) {
+ JDBCConfiguration conf = (JDBCConfiguration) emf1.getConfiguration();
+ DBDictionary dict = conf.getDBDictionaryInstance();
+ OpenJPAEntityManagerSPI em1 = em;
+
+ // If no em supplied, create one
+ if (em1 == null) {
+ em1 = emf1.createEntityManager();
+ }
+ Connection conn = (Connection)em1.getConnection();
+ try {
+ DatabaseMetaData dbmd = conn.getMetaData();
+ // (meta, catalog, schemaName, tableName, conn)
+ Column[] cols = dict.getColumns(dbmd, null, null,
+ tableName, columnName, conn);
+ if (cols != null && cols.length == 1) {
+ Column col = cols[0];
+ String colName = col.getName();
+ if (col.getTableName().equalsIgnoreCase(tableName) &&
+ (schemaName == null ||
+ col.getSchemaName().equalsIgnoreCase(schemaName)) &&
+ colName.equalsIgnoreCase(columnName))
+ return true;
+ }
+ } catch (Throwable e) {
+ fail("Unable to get column information.");
+ } finally {
+ if (em == null) {
+ em1.close();
+ }
+ }
+ return false;
+ }
+ /**
+ * Closes a specific entity manager factory and cleans up
+ * associated tables.
+ */
+ private void cleanupEMF(OpenJPAEntityManagerFactorySPI emf1)
+ throws Exception {
+
+ if (emf1 == null)
+ return;
+
+ try {
+ clear(emf1);
+ } catch (Exception e) {
+ // if a test failed, swallow any exceptions that happen
+ // during tear-down, as these just mask the original problem.
+ if (testResult.wasSuccessful())
+ throw e;
+ } finally {
+ closeEMF(emf1);
+ }
+ }
+ }
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/order/TestOrderColumnXML.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/PersistenceTestCase.java Fri May 29 17:24:54 2009
@@ -526,6 +526,25 @@
return false;
}
+ /**
+ * Determines whether specified platform is the target database platform
+ * in use by the test framework.
+ * @param target platform name (derby, db2, oracle, etc.)
+ * @return true if the specified platform matches the platform in use
+ */
+ public boolean isTargetPlatform(String target) {
+ String url = getPlatform();
+ return url != null && url.indexOf(target) != -1;
+ }
+
+ /**
+ * Returns the platform in use by the test framework
+ * @return the database platform
+ */
+ public String getPlatform() {
+ return System.getProperty("platform", "derby");
+ }
+
private static class FixedMap extends LinkedHashMap<EMFKey,
OpenJPAEntityManagerFactorySPI> {
public boolean removeEldestEntry(Map.Entry<EMFKey,
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMFTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMFTestCase.java?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMFTestCase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/SingleEMFTestCase.java Fri May 29 17:24:54 2009
@@ -147,25 +147,6 @@
return (List<T>)em.createQuery("SELECT p FROM " + getAlias(t) + " p")
.getResultList();
}
-
- /**
- * Determines whether specified platform is the target database platform
- * in use by the test framework.
- * @param target platform name (derby, db2, oracle, etc.)
- * @return true if the specified platform matches the platform in use
- */
- public boolean isTargetPlatform(String target) {
- String url = getPlatform();
- return url != null && url.indexOf(target) != -1;
- }
-
- /**
- * Returns the platform in use by the test framework
- * @return the database platform
- */
- public String getPlatform() {
- return System.getProperty("platform", "derby");
- }
public String getAlias(Class<?> t) {
return emf.getConfiguration().getMetaDataRepositoryInstance()
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/META-INF/persistence.xml Fri May 29 17:24:54 2009
@@ -45,6 +45,9 @@
<mapping-file>org/apache/openjpa/persistence/access/access-def-prop-orm.xml</mapping-file>
<mapping-file>org/apache/openjpa/persistence/access/access-pudef-field-orm.xml</mapping-file>
<mapping-file>org/apache/openjpa/persistence/access/access-pudef-prop-orm.xml</mapping-file>
+ <mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm.xml</mapping-file>
+ <mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml</mapping-file>
+ <mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml</mapping-file>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema(ForeignKeys=true)"/>
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml Fri May 29 17:24:54 2009
@@ -24,7 +24,7 @@
<package>
org.apache.openjpa.persistence.jdbc.order
</package>
- <entity name="BaseTestNoNullElement" class="BaseTestElement"
+ <entity name="BaseTestNoNullElement" class="BaseTestElement2"
access="PROPERTY">
<table name="BTNNEL"/>
<attributes>
@@ -34,7 +34,7 @@
<basic name="name"/>
</attributes>
</entity>
- <entity name="BaseTestNoNullEntity" class="BaseTestEntity" access="FIELD">
+ <entity name="BaseTestNoNullEntity" class="BaseTestEntity2" access="FIELD">
<table name="BTNNEN"/>
<attributes>
<id name="id">
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml Fri May 29 17:24:54 2009
@@ -24,7 +24,7 @@
<package>
org.apache.openjpa.persistence.jdbc.order
</package>
- <entity name="BaseTestTableElement" class="BaseTestElement"
+ <entity name="BaseTestTableElement" class="BaseTestElement3"
access="PROPERTY">
<table name="BTTEL"/>
<attributes>
@@ -34,7 +34,7 @@
<basic name="name"/>
</attributes>
</entity>
- <entity name="BaseTestTableEntity" class="BaseTestEntity" access="FIELD">
+ <entity name="BaseTestTableEntity" class="BaseTestEntity3" access="FIELD">
<table name="BTNNEN"/>
<attributes>
<id name="id">
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-orm.xml Fri May 29 17:24:54 2009
@@ -24,7 +24,7 @@
<package>
org.apache.openjpa.persistence.jdbc.order
</package>
- <entity name="BaseTestElement" class="BaseTestElement" access="PROPERTY">
+ <entity name="BaseTestElement" class="BaseTestElement1" access="PROPERTY">
<attributes>
<id name="id">
<generated-value/>
@@ -32,7 +32,7 @@
<basic name="name"/>
</attributes>
</entity>
- <entity name="BaseTestEntity" class="BaseTestEntity" access="FIELD">
+ <entity name="BaseTestEntity" class="BaseTestEntity1" access="FIELD">
<attributes>
<id name="id">
<generated-value/>
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-4.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-4.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-4.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-4.xml Fri May 29 17:24:54 2009
@@ -27,8 +27,8 @@
<description>PU for order column testing</description>
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm-2.xml</mapping-file>
- <class>org.apache.openjpa.persistence.jdbc.order.BaseTestEntity</class>
- <class>org.apache.openjpa.persistence.jdbc.order.BaseTestElement</class>
+ <class>org.apache.openjpa.persistence.jdbc.order.BaseTestEntity2</class>
+ <class>org.apache.openjpa.persistence.jdbc.order.BaseTestElement2</class>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
</properties>
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-5.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-5.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-5.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence-5.xml Fri May 29 17:24:54 2009
@@ -27,8 +27,8 @@
<description>PU for order column testing</description>
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm-3.xml</mapping-file>
- <class>org.apache.openjpa.persistence.jdbc.order.BaseTestEntity</class>
- <class>org.apache.openjpa.persistence.jdbc.order.BaseTestElement</class>
+ <class>org.apache.openjpa.persistence.jdbc.order.BaseTestEntity3</class>
+ <class>org.apache.openjpa.persistence.jdbc.order.BaseTestElement3</class>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
</properties>
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence.xml?rev=780038&r1=780037&r2=780038&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence.xml (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/resources/org/apache/openjpa/persistence/jdbc/order/order-persistence.xml Fri May 29 17:24:54 2009
@@ -27,8 +27,8 @@
<description>PU for order column testing</description>
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<mapping-file>org/apache/openjpa/persistence/jdbc/order/order-orm.xml</mapping-file>
- <class>org.apache.openjpa.persistence.jdbc.order.BaseTestEntity</class>
- <class>org.apache.openjpa.persistence.jdbc.order.BaseTestElement</class>
+ <class>org.apache.openjpa.persistence.jdbc.order.BaseTestEntity1</class>
+ <class>org.apache.openjpa.persistence.jdbc.order.BaseTestElement1</class>
<properties>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
</properties>