diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ClassMappingInfo.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ClassMappingInfo.java index 2eb4fdf48..0099b1315 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ClassMappingInfo.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ClassMappingInfo.java @@ -226,7 +226,7 @@ public class ClassMappingInfo * Return the table for the given class. */ public Table getTable(final ClassMapping cls, boolean adapt) { - return createTable(cls, new TableDefaults() { + Table t = createTable(cls, new TableDefaults() { public String get(Schema schema) { // delay this so that we don't do schema reflection for unique // table name unless necessary @@ -234,6 +234,10 @@ public class ClassMappingInfo getTableName(cls, schema); } }, _schemaName, _tableName, adapt); + t.setComment(cls.getTypeAlias() == null + ? cls.getDescribedType().getName() + : cls.getTypeAlias()); + return t; } /** diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java index ab78b89f1..9172ff63a 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingInfo.java @@ -699,6 +699,9 @@ public abstract class MappingInfo if (decimals != 0) col.setDecimalDigits(decimals); } + + if (tmplate.hasComment()) + col.setComment(tmplate.getComment()); return col; } diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.java index c1e54c382..d39d24c62 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/FullClassStrategy.java @@ -76,6 +76,7 @@ public class FullClassStrategy Column id = new Column(); id.setName("id"); id.setJavaType(JavaTypes.LONG); + id.setComment("datastore id"); if (cls.getIdentityStrategy() == ValueStrategies.AUTOASSIGN) id.setAutoAssigned(true); id.setNotNull(true); diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Column.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Column.java index deda088e8..45dedec18 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Column.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Column.java @@ -72,7 +72,8 @@ public class Column private int _index = 0; private boolean _pk = false; private VersionStrategy _versionStrategy = null; - + private String _comment = null; + /** * Default constructor. */ @@ -733,4 +734,16 @@ public class Column public void setVersionStrategy(VersionStrategy strategy) { this._versionStrategy = strategy; } + + public boolean hasComment() { + return _comment != null && !_comment.equalsIgnoreCase(_name); + } + + public String getComment() { + return _comment; + } + + public void setComment(String comment) { + _comment = comment; + } } diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Table.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Table.java index 926cccf14..a79522a7d 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Table.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/Table.java @@ -60,6 +60,7 @@ public class Table private ForeignKey[] _fks = null; private Index[] _idxs = null; private Unique[] _unqs = null; + private String _comment = null; /** * Default constructor. @@ -689,4 +690,16 @@ public class Table public String toString() { return getFullName(); } + + public boolean hasComment() { + return _comment != null && !_comment.equalsIgnoreCase(_name); + } + + public String getComment() { + return _comment; + } + + public void setComment(String comment) { + _comment = comment; + } } diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java index 536b0d6b4..093bbd2f3 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java @@ -193,6 +193,7 @@ public class DBDictionary public boolean supportsDefaultUpdateAction = true; public boolean supportsAlterTableWithAddColumn = true; public boolean supportsAlterTableWithDropColumn = true; + public boolean supportsComments = false; public String reservedWords = null; public String systemSchemas = null; public String systemTables = null; @@ -2972,36 +2973,57 @@ public class DBDictionary */ public String[] getCreateTableSQL(Table table) { StringBuffer buf = new StringBuffer(); - buf.append("CREATE TABLE ").append(getFullName(table, false)). - append(" ("); - - Column[] cols = table.getColumns(); - for (int i = 0; i < cols.length; i++) { - if (i > 0) - buf.append(", "); - buf.append(getDeclareColumnSQL(cols[i], false)); + buf.append("CREATE TABLE ").append(getFullName(table, false)); + if (supportsComments && table.hasComment()) { + buf.append(" "); + comment(buf, table.getComment()); + buf.append("\n ("); + } else { + buf.append(" ("); } + // do this before getting the columns so we know how to handle + // the last comma + StringBuffer endBuf = new StringBuffer(); PrimaryKey pk = table.getPrimaryKey(); String pkStr; if (pk != null) { pkStr = getPrimaryKeyConstraintSQL(pk); if (pkStr != null) - buf.append(", ").append(pkStr); + endBuf.append(pkStr); } Unique[] unqs = table.getUniques(); String unqStr; for (int i = 0; i < unqs.length; i++) { unqStr = getUniqueConstraintSQL(unqs[i]); - if (unqStr != null) - buf.append(", ").append(unqStr); + if (unqStr != null) { + if (endBuf.length() > 0) + endBuf.append(", "); + endBuf.append(unqStr); + } } + Column[] cols = table.getColumns(); + for (int i = 0; i < cols.length; i++) { + buf.append(getDeclareColumnSQL(cols[i], false)); + if (i < cols.length - 1 || endBuf.length() > 0) + buf.append(", "); + if (supportsComments && cols[i].hasComment()) { + comment(buf, cols[i].getComment()); + buf.append("\n "); + } + } + + buf.append(endBuf.toString()); buf.append(")"); return new String[]{ buf.toString() }; } + protected StringBuffer comment(StringBuffer buf, String comment) { + return buf.append("-- ").append(comment); + } + /** * Return a series of SQL statements to drop the given table. Indexes * will be dropped separately. Returns diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DerbyDictionary.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DerbyDictionary.java index fc97ea35f..f79307f88 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DerbyDictionary.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DerbyDictionary.java @@ -61,6 +61,8 @@ public class DerbyDictionary requiresCastForMathFunctions = true; requiresCastForComparisons = true; + supportsComments = true; + fixedSizeTypeNameSet.addAll(Arrays.asList(new String[]{ "BIGINT", "INTEGER", })); diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java index 7a9b3b8d1..ebe56440f 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/BrokerImpl.java @@ -4339,9 +4339,12 @@ public class BrokerImpl if (_closedException == null) // TRACE not enabled throw new InvalidStateException(_loc.get("closed-notrace")) .setFatal(true); - else - throw new InvalidStateException(_loc.get("closed"), - _closedException).setFatal(true); + else { + OpenJPAException e = new InvalidStateException( + _loc.get("closed"), _closedException).setFatal(true); + e.setCause(_closedException); + throw e; + } } } diff --git a/openjpa-persistence-jdbc/pom.xml b/openjpa-persistence-jdbc/pom.xml index c27cfa5bb..5d3808981 100644 --- a/openjpa-persistence-jdbc/pom.xml +++ b/openjpa-persistence-jdbc/pom.xml @@ -327,6 +327,10 @@ org/apache/openjpa/persistence/jpql/clauses/TestEJBQueryInterface.java + org/apache/openjpa/persistence/kernel/TestInitialValueFetching.java + org/apache/openjpa/persistence/kernel/TestOpenResultsCommit.java + org/apache/openjpa/persistence/query/TestQuotedNumbersInFilters2.java + org/apache/openjpa/persistence/kernel/TestEJBEmbedded.java org/apache/openjpa/persistence/annotations/TestAdvAnnot.java org/apache/openjpa/persistence/annotations/TestDDCallbackMethods.java @@ -436,72 +440,35 @@ org/apache/openjpa/persistence/kernel/TestArrayValues2.java org/apache/openjpa/persistence/kernel/TestBigDecimals.java org/apache/openjpa/persistence/kernel/TestBrokerFactoryPooling.java - org/apache/openjpa/persistence/kernel/TestCalendarFields.java - org/apache/openjpa/persistence/kernel/TestCheckConsistency.java - org/apache/openjpa/persistence/kernel/TestClassStringConstructor.java org/apache/openjpa/persistence/kernel/TestConnectionRetainMode.java - org/apache/openjpa/persistence/kernel/TestDateQueries.java org/apache/openjpa/persistence/kernel/TestDependentFields2.java org/apache/openjpa/persistence/kernel/TestDetachedStateManager.java - org/apache/openjpa/persistence/kernel/TestEJBEntityManager.java - org/apache/openjpa/persistence/kernel/TestEJBGetObjectByIdValue.java org/apache/openjpa/persistence/kernel/TestEJBIncrementalFlushes.java - org/apache/openjpa/persistence/kernel/TestEJBLobs.java - org/apache/openjpa/persistence/kernel/TestEJBLocales.java - org/apache/openjpa/persistence/kernel/TestEJBManagedInverses.java org/apache/openjpa/persistence/kernel/TestEJBNoPersistentFields.java - org/apache/openjpa/persistence/kernel/TestEJBNullValues.java org/apache/openjpa/persistence/kernel/TestEJBObjectCollections.java org/apache/openjpa/persistence/kernel/TestEJBRetainValues.java - org/apache/openjpa/persistence/kernel/TestEJBState.java - org/apache/openjpa/persistence/kernel/TestEJBTransactionalClass.java org/apache/openjpa/persistence/kernel/TestEJBTransactions.java - org/apache/openjpa/persistence/kernel/TestExtents.java - org/apache/openjpa/persistence/kernel/TestExtents2.java - org/apache/openjpa/persistence/kernel/TestFetchGroups.java org/apache/openjpa/persistence/kernel/TestFetchGroupsExtent.java - org/apache/openjpa/persistence/kernel/TestFetchGroupsQuery.java org/apache/openjpa/persistence/kernel/TestFetchPlan.java org/apache/openjpa/persistence/kernel/TestFieldRange.java org/apache/openjpa/persistence/kernel/TestFieldRange2.java - org/apache/openjpa/persistence/kernel/TestFieldState.java org/apache/openjpa/persistence/kernel/TestGetObjectsById.java org/apache/openjpa/persistence/kernel/TestIncrementalFlushes.java - org/apache/openjpa/persistence/kernel/TestIncrementalFlushesDeletes.java - org/apache/openjpa/persistence/kernel/TestInheritance.java - org/apache/openjpa/persistence/kernel/TestInitialValueFetching.java org/apache/openjpa/persistence/kernel/TestInstanceCallbacks.java - org/apache/openjpa/persistence/kernel/TestManagedInterfaces.java - org/apache/openjpa/persistence/kernel/TestManagedInterfacesAppId.java org/apache/openjpa/persistence/kernel/TestMultiThreaded.java org/apache/openjpa/persistence/kernel/TestNTW.java - org/apache/openjpa/persistence/kernel/TestOpenResultsCommit.java org/apache/openjpa/persistence/kernel/TestOptimisticLockGroups.java - org/apache/openjpa/persistence/kernel/TestPCClass.java org/apache/openjpa/persistence/kernel/TestPersistenceManager.java org/apache/openjpa/persistence/kernel/TestPersistenceManagerFactoryImpl.java org/apache/openjpa/persistence/kernel/TestPersistentMaps.java - org/apache/openjpa/persistence/kernel/TestPessimisticLocking.java - org/apache/openjpa/persistence/kernel/TestPMMemory.java - org/apache/openjpa/persistence/kernel/TestPojoWithoutAnnotationsCannotBePersisted.java - org/apache/openjpa/persistence/kernel/TestProxies2.java - org/apache/openjpa/persistence/kernel/TestQueries.java org/apache/openjpa/persistence/kernel/TestRestoreValues.java org/apache/openjpa/persistence/kernel/TestRetainValuesInOptimistic.java org/apache/openjpa/persistence/kernel/TestSavepointEmbedded.java org/apache/openjpa/persistence/kernel/TestSavepointEmbeddedPreFlush.java - org/apache/openjpa/persistence/kernel/TestSavepointOrdering.java - org/apache/openjpa/persistence/kernel/TestSavepoints.java org/apache/openjpa/persistence/kernel/TestSecondClassValues.java - org/apache/openjpa/persistence/kernel/TestSecurityContext.java - org/apache/openjpa/persistence/kernel/TestSequence.java org/apache/openjpa/persistence/kernel/TestSerialize.java - org/apache/openjpa/persistence/kernel/TestSimple.java org/apache/openjpa/persistence/kernel/TestSpecialNumbers.java org/apache/openjpa/persistence/kernel/TestSpecialNumbers2.java - org/apache/openjpa/persistence/kernel/TestStateManagerImplData.java - org/apache/openjpa/persistence/kernel/TestStaticInnerClasses.java - org/apache/openjpa/persistence/kernel/TestStoreBlob.java org/apache/openjpa/persistence/meta/TestClassMetaData.java org/apache/openjpa/persistence/meta/TestExternalValues.java org/apache/openjpa/persistence/meta/TestFieldDeclarationOrder.java diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/common/utils/AbstractTestCase.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/common/utils/AbstractTestCase.java index 51e7d0a2f..dfbf272a6 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/common/utils/AbstractTestCase.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/common/utils/AbstractTestCase.java @@ -203,7 +203,8 @@ public abstract class AbstractTestCase extends PersistenceTestCase { protected void addProperties(Map map) { if (!map.containsKey("openjpa.jdbc.SynchronizeMappings")) map.put("openjpa.jdbc.SynchronizeMappings", - "buildSchema(ForeignKeys=true)"); + "buildSchema(ForeignKeys=true," + + "SchemaAction='add,deleteTableContents')"); } protected OpenJPAEntityManagerFactory getEmf() { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/BaseKernelTest.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/BaseKernelTest.java index adc657852..d84d131f7 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/BaseKernelTest.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/BaseKernelTest.java @@ -81,10 +81,6 @@ public abstract class BaseKernelTest extends org.apache.openjpa.persistence.comm return em; } - protected OpenJPAStateManager getStateManager(Object obj,EntityManager pm) { - return getStateManager(obj,pm); - } - protected Object persist(Object ob) { //FIXME - this is just a workaround // Broker broker = .getBrokerFactory().newBroker(); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestDependentFields2.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestDependentFields2.java index 2af1960cf..3b2f1e71d 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestDependentFields2.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestDependentFields2.java @@ -480,11 +480,11 @@ public class TestDependentFields2 extends BaseKernelTest { action = COMMIT; } else { try { - endTx(pm); + pm.getTransaction().commit(); fail("Committed with ref to deleted dependent object"); } catch (Exception je) { - } finally { rollbackTx(pm); + } finally { } break; } diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestEJBLobs.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestEJBLobs.java index 9fec0cf1e..00942c500 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestEJBLobs.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestEJBLobs.java @@ -159,6 +159,7 @@ public class TestEJBLobs extends AbstractTestCase { @SuppressWarnings("serial") @Entity + @Table(name="Inner2") public static class Inner2 implements Serializable { @Id diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestManagedInterfaces.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestManagedInterfaces.java deleted file mode 100644 index acc4ed82b..000000000 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestManagedInterfaces.java +++ /dev/null @@ -1,490 +0,0 @@ -/* - * 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.kernel; - -import java.util.List; - - -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterface; -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceEmbed; -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceOwner; -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceSup; -import org.apache.openjpa.persistence.kernel.common.apps.MixedInterface; -import org.apache.openjpa.persistence.kernel.common.apps.MixedInterfaceImpl; -import org.apache.openjpa.persistence.kernel.common.apps.NonMappedInterfaceImpl; -import org.apache.openjpa.persistence.kernel.common.apps.RuntimeTest1; -import org.apache.openjpa.persistence.OpenJPAEntityManager; -import org.apache.openjpa.persistence.OpenJPAQuery; - -public class TestManagedInterfaces extends BaseKernelTest { - - public void setUp() { - deleteAll(ManagedInterfaceSup.class); - deleteAll(ManagedInterfaceOwner.class); - deleteAll(MixedInterface.class); - deleteAll(MixedInterfaceImpl.class); - deleteAll(NonMappedInterfaceImpl.class); - deleteAll(RuntimeTest1.class); - } - - public void testManagedInterface() { - OpenJPAEntityManager pm = getPM(); - startTx(pm); - ManagedInterface pc = - (ManagedInterface) pm.createInstance(ManagedInterface.class); - pc.setIntFieldSup(3); - pc.setIntField(4); - pc.setEmbed((ManagedInterfaceEmbed) pm - .createInstance(ManagedInterfaceEmbed.class)); - - pc.getEmbed().setIntField(5); - assertEquals(5, pc.getEmbed().getIntField()); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = pm.find(ManagedInterface.class, oid); - assertEquals(3, pc.getIntFieldSup()); - assertEquals(4, pc.getIntField()); - assertEquals(5, pc.getEmbed().getIntField()); - startTx(pm); - pc.setIntField(14); - endTx(pm); - endEm(pm); - - pm = getPM(); - startTx(pm); - -// Query query = pm.newQuery(ManagedInterface.class, "intField==14"); -// Collection c = (Collection) query.execute(); - - OpenJPAQuery query = pm.createQuery( - "SELECT o FROM ManagedInterface o WHERE o.intField = 14"); - List l = query.getResultList(); - - assertEquals(1, l.size()); - pc = (ManagedInterface) l.iterator().next(); - assertEquals(14, pc.getIntField()); - pm.remove(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - try { - pm.find(ManagedInterface.class, oid); - fail(); - } catch (Exception onfe) { - } - - endEm(pm); - } - -// public void testInterfaceOwner() { -// OpenJPAEntityManager pm = getPM(); -// ManagedInterfaceOwner pc = new ManagedInterfaceOwner(); -// pc.setIFace((ManagedInterfaceSup) pm.createInstance -// (ManagedInterfaceSup.class)); -// pc.setEmbed((ManagedInterfaceEmbed) pm.createInstance -// (ManagedInterfaceEmbed.class)); -// pc.getIFace().setIntFieldSup(3); -// pc.getEmbed().setIntField(5); -// -// startTx(pm); -// pm.persist(pc); -// Object oid = pm.getObjectId(pc); -// endTx(pm); -// pc = (ManagedInterfaceOwner) pm.getObjectById(oid, true); -// assertEquals(3, pc.getIFace().getIntFieldSup()); -// assertEquals(5, pc.getEmbed().getIntField()); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterfaceOwner) pm.getObjectById(oid, true); -// assertEquals(3, pc.getIFace().getIntFieldSup()); -// assertEquals(5, pc.getEmbed().getIntField()); -// endEm(pm); -// -// pm = getPM(); -// startTx(pm); -// Query q = pm.newQuery(ManagedInterfaceOwner.class, -// "iface.intFieldSup==3 && embed.intField==5"); -// Collection c = (Collection) q.execute(); -// pc = (ManagedInterfaceOwner) c.iterator().next(); -// assertEquals(3, pc.getIFace().getIntFieldSup()); -// assertEquals(5, pc.getEmbed().getIntField()); -// -// pc.getIFace().setIntFieldSup(13); -// pc.getEmbed().setIntField(15); -// assertEquals(13, pc.getIFace().getIntFieldSup()); -// assertEquals(15, pc.getEmbed().getIntField()); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterfaceOwner) pm.getObjectById(oid, true); -// assertEquals(13, pc.getIFace().getIntFieldSup()); -// assertEquals(15, pc.getEmbed().getIntField()); -// endEm(pm); -// } -// -// public void testCollection() { -// OpenJPAEntityManager pm = getPM(); -// startTx(pm); -// ManagedInterface pc = (ManagedInterface) pm.createInstance -// (ManagedInterface.class); -// Set set = new HashSet(); -// set.add(new Integer(3)); -// set.add(new Integer(4)); -// set.add(new Integer(5)); -// pc.setSetInteger(set); -// pm.persist(pc); -// Object oid = pm.getObjectId(pc); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetInteger(); -// assertEquals(3, set.size()); -// assertTrue(set.contains(new Integer(3))); -// assertTrue(set.contains(new Integer(4))); -// assertTrue(set.contains(new Integer(5))); -// startTx(pm); -// set.remove(new Integer(4)); -// set.add(new Integer(14)); -// set.add(new Integer(15)); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetInteger(); -// assertEquals(4, set.size()); -// assertTrue(set.contains(new Integer(3))); -// assertTrue(set.contains(new Integer(5))); -// assertTrue(set.contains(new Integer(14))); -// assertTrue(set.contains(new Integer(15))); -// startTx(pm); -// pc.setSetInteger(null); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetInteger(); -// assertTrue (set == null || set.size() == 0); -// endEm(pm); -// } -// -// public void testCollectionPC() { -// OpenJPAEntityManager pm = getPM(); -// startTx(pm); -// ManagedInterface pc = (ManagedInterface) pm.createInstance -// (ManagedInterface.class); -// Set set = new HashSet(); -// set.add(new RuntimeTest1("a", 3)); -// set.add(new RuntimeTest1("b", 4)); -// set.add(new RuntimeTest1("c", 5)); -// pc.setSetPC(set); -// pm.persist(pc); -// Object oid = pm.getObjectId(pc); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetPC(); -// assertEquals(3, set.size()); -// Collection seen = new ArrayList(); -// RuntimeTest1 rel; -// RuntimeTest1 toRem = null; -// for (Iterator it = set.iterator(); it.hasNext();) { -// rel = (RuntimeTest1) it.next(); -// seen.add(rel.getStringField()); -// if (rel.getIntField() == 4) -// toRem = rel; -// } -// assertEquals(3, seen.size()); -// assertTrue(seen.contains("a")); -// assertTrue(seen.contains("b")); -// assertTrue(seen.contains("c")); -// startTx(pm); -// assertNotNull(toRem); -// set.remove(toRem); -// set.add(new RuntimeTest1("x", 14)); -// set.add(new RuntimeTest1("y", 15)); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetPC(); -// assertEquals(4, set.size()); -// seen.clear(); -// for (Iterator it = set.iterator(); it.hasNext();) { -// rel = (RuntimeTest1) it.next(); -// seen.add(rel.getStringField()); -// } -// assertEquals(4, seen.size()); -// assertTrue(seen.contains("a")); -// assertTrue(seen.contains("c")); -// assertTrue(seen.contains("x")); -// assertTrue(seen.contains("y")); -// startTx(pm); -// pc.setSetPC(null); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetPC(); -// assertTrue (set == null || set.size() == 0); -// endEm(pm); -// } -// -// public void testCollectionInterfaces() { -// OpenJPAEntityManager pm = getPM(); -// startTx(pm); -// ManagedInterface pc = (ManagedInterface) pm.createInstance -// (ManagedInterface.class); -// Set set = new HashSet(); -// set.add(createInstance(pm, 3)); -// set.add(createInstance(pm, 4)); -// set.add(createInstance(pm, 5)); -// pc.setSetI(set); -// pm.persist(pc); -// Object oid = pm.getObjectId(pc); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetI(); -// assertEquals(3, set.size()); -// Collection seen = new ArrayList(); -// ManagedInterface rel = null; -// ManagedInterface toRem = null; -// for (Iterator it = set.iterator(); it.hasNext();) { -// rel = (ManagedInterface) it.next(); -// seen.add(new Integer(rel.getIntField())); -// if (rel.getIntField() == 4) -// toRem = rel; -// } -// assertEquals(3, seen.size()); -// assertTrue(seen.contains(new Integer(3))); -// assertTrue(seen.contains(new Integer(4))); -// assertTrue(seen.contains(new Integer(5))); -// startTx(pm); -// assertNotNull(toRem); -// set.remove(toRem); -// set.add(createInstance(pm, 14)); -// set.add(createInstance(pm, 15)); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetI(); -// assertEquals(4, set.size()); -// seen.clear(); -// for (Iterator it = set.iterator(); it.hasNext();) { -// rel = (ManagedInterface) it.next(); -// seen.add(new Integer(rel.getIntField())); -// } -// assertEquals(4, seen.size()); -// assertTrue(seen.contains(new Integer(3))); -// assertTrue(seen.contains(new Integer(5))); -// assertTrue(seen.contains(new Integer(14))); -// assertTrue(seen.contains(new Integer(15))); -// startTx(pm); -// pc.setSetPC(null); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// set = pc.getSetPC(); -// assertTrue (set == null || set.size() == 0); -// endEm(pm); -// } -// -// public void testMixedQuery() { -// createMixed(); -// -// OpenJPAEntityManager pm = getPM(); -// Query q = pm.newQuery(MixedInterface.class, "intField==4"); -// Collection c = (Collection) q.execute(); -// Set seen = new HashSet(); -// assertEquals(2, c.size()); -// MixedInterface pc; -// for (Iterator it = c.iterator(); it.hasNext();) { -// pc = (MixedInterface) it.next(); -// assertEquals(4, pc.getIntField()); -// seen.add(pc.getClass()); -// } -// assertEquals(2, seen.size()); -// endEm(pm); -// } -// -// public void testMixedExtent() { -// createMixed(); -// -// OpenJPAEntityManager pm = getPM(); -// Extent e = pm.getExtent(MixedInterface.class, true); -// Set seen = new HashSet(); -// int size = 0; -// for (Iterator it = e.iterator(); it.hasNext();) { -// seen.add(it.next().getClass()); -// size++; -// } -// assertEquals(3, size); -// assertEquals(2, seen.size()); -// -// e = pm.getExtent(MixedInterface.class, false); -// seen = new HashSet(); -// size = 0; -// for (Iterator it = e.iterator(); it.hasNext();) { -// seen.add(it.next().getClass()); -// size++; -// } -// assertEquals(1, size); -// assertNotEquals(MixedInterfaceImpl.class, seen.iterator().next()); -// endEm(pm); -// } -// -// private void createMixed() { -// OpenJPAEntityManager pm = getPM(); -// startTx(pm); -// MixedInterface pc = (MixedInterface) pm.createInstance -// (MixedInterface.class); -// pc.setIntField(4); -// pm.persist(pc); -// pc = new MixedInterfaceImpl(); -// pc.setIntField(4); -// pm.persist(pc); -// pc = new MixedInterfaceImpl(); -// pc.setIntField(8); -// pm.persist(pc); -// endTx(pm); -// endEm(pm); -// } -// -// public void testUnimplementedThrowsException() { -// OpenJPAEntityManager pm = getPM(); -// ManagedInterface pc = createInstance(pm, 1); -// try { -// pc.unimplemented(); -// fail("Exception expected."); -// } catch (JDOUserException jdoe) {} // good -// endEm(pm); -// } -// -// public void testNonMappedcreateInstanceException() { -// OpenJPAEntityManager pm = getPM(); -// try { -// pm.createInstance(NonMappedInterface.class); -// fail("Exception expected"); -// } catch (JDOUserException jdoe) {} // good -// endEm(pm); -// } -// -// public void testNonMappedPropertyAlias() -// throws Exception { -// Object oid = createNonMappedImpl(); -// OpenJPAEntityManager pm = getPM(); -// Query q = pm.newQuery(NonMappedInterface.class, "intField==4"); -// Collection c = (Collection) q.execute(); -// assertEquals(1, c.size()); -// assertEquals(oid, pm.getObjectId(c.iterator().next())); -// endEm(pm); -// } -// -// public void testNonMappedPropertyAliasInMemory() -// throws Exception { -// Object oid = createNonMappedImpl(); -// OpenJPAEntityManager pm = getPM(); -// Query q = pm.newQuery(NonMappedInterface.class, "intField==4"); -// q.setCandidates((Collection) pm.newQuery(NonMappedInterfaceImpl.class). -// execute()); -// Collection c = (Collection) q.execute(); -// assertEquals(1, c.size()); -// assertEquals(oid, pm.getObjectId(c.iterator().next())); -// endEm(pm); -// } -// -// private Object createNonMappedImpl() -// throws Exception { -// // load non-mapped-impl -// Class.forName(NonMappedInterfaceImpl.class.getNametrue, -// NonMappedInterfaceImpl.class.getClassLoader()); -// -// -// OpenJPAEntityManager pm = getPM(); -// startTx(pm); -// NonMappedInterface pc = new NonMappedInterfaceImpl(); -// pc.setIntField(4); -// pm.persist(pc); -// Object oid = pm.getObjectId(pc); -// pc = new NonMappedInterfaceImpl(); -// pc.setIntField(8); -// pm.persist(pc); -// endTx(pm); -// endEm(pm); -// return oid; -// } -// -// public void testDetach() { -// KodoOpenJPAEntityManager pm = getPM(); -// startTx(pm); -// ManagedInterface pc = createInstance(pm, 4); -// pm.persist(pc); -// Object oid = pm.getObjectId(pc); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// ManagedInterface pcx = (ManagedInterface) pm.getObjectById(oid, true); -// pc = (ManagedInterface) pm.detachCopy(pcx); -// endEm(pm); -// -// assertTrue(pm.isDetached(pc)); -// pc.setIntField(7); -// -// pm = getPM(); -// startTx(pm); -// pm.persist(pc); -// endTx(pm); -// endEm(pm); -// -// pm = getPM(); -// pc = (ManagedInterface) pm.getObjectById(oid, true); -// assertEquals(7, pc.getIntField()); -// endEm(pm); -// -// } - - private ManagedInterface createInstance(OpenJPAEntityManager pm, int i) { - ManagedInterface pc = (ManagedInterface) pm.createInstance - (ManagedInterface.class); - pc.setIntField(i); - return pc; - } -} diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestManagedInterfacesAppId.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestManagedInterfacesAppId.java deleted file mode 100644 index 75b628410..000000000 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestManagedInterfacesAppId.java +++ /dev/null @@ -1,399 +0,0 @@ -/* - * TestManagedInterfacesAppId.java - * - * Created on October 16, 2006, 4:49 PM - * - * To change this template, choose Tools | Template Manager - * and open the template in the editor. - */ - -/* - * 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.kernel; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - - - -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceAppId; -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceEmbed; -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceOwnerAppId; -import org.apache.openjpa.persistence.kernel.common.apps.ManagedInterfaceSupAppId; -import org.apache.openjpa.persistence.kernel.common.apps.RuntimeTest1; - -import org.apache.openjpa.persistence.OpenJPAEntityManager; -import org.apache.openjpa.persistence.OpenJPAQuery; - -public class TestManagedInterfacesAppId extends BaseKernelTest { - - /** - * Creates a new instance of TestManagedInterfacesAppId - */ - public TestManagedInterfacesAppId(String name) { - super(name); - } - - public void setUp() { - deleteAll(ManagedInterfaceSupAppId.class); - deleteAll(ManagedInterfaceOwnerAppId.class); - deleteAll(RuntimeTest1.class); - } - - public void testManagedInterface() { - OpenJPAEntityManager pm = getPM(); - startTx(pm); - ManagedInterfaceAppId pc = (ManagedInterfaceAppId) pm.createInstance( - (ManagedInterfaceAppId.class)); - pc.setId1(9); - pc.setId2(19); - pc.setIntFieldSup(3); - pc.setIntField(4); - - pc.setEmbed((ManagedInterfaceEmbed) pm.createInstance - (ManagedInterfaceEmbed.class)); - - pc.getEmbed().setIntField(5); - assertEquals(5, pc.getEmbed().getIntField()); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - assertEquals(9, pc.getId1()); - assertEquals(19, pc.getId2()); - assertEquals(3, pc.getIntFieldSup()); - assertEquals(4, pc.getIntField()); - assertEquals(5, pc.getEmbed().getIntField()); - startTx(pm); - pc.setIntField(14); - endTx(pm); - endEm(pm); - - pm = getPM(); - Object newId = new ManagedInterfaceSupAppId.Id("9,19"); - pc = - (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, newId); - assertEquals(9, pc.getId1()); - assertEquals(19, pc.getId2()); - assertEquals(3, pc.getIntFieldSup()); - assertEquals(14, pc.getIntField()); - assertEquals(5, pc.getEmbed().getIntField()); - endEm(pm); - - pm = getPM(); - startTx(pm); - OpenJPAQuery query = - pm.createNativeQuery("intField==14", ManagedInterfaceAppId.class); - Collection c = (Collection) query.getResultList(); - assertEquals(1, c.size()); - pc = (ManagedInterfaceAppId) c.iterator().next(); - assertEquals(14, pc.getIntField()); - pm.remove(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - try { - pm.find(ManagedInterfaceAppId.class, oid); - fail(); - } catch (Exception onfe) { - } - - endEm(pm); - } - - public void testInterfaceOwner() { - OpenJPAEntityManager pm = getPM(); - ManagedInterfaceOwnerAppId pc = new ManagedInterfaceOwnerAppId(); - pc.setIFace((ManagedInterfaceSupAppId) pm.createInstance - (ManagedInterfaceSupAppId.class)); - pc.getIFace().setIntFieldSup(3); - - startTx(pm); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - pc = (ManagedInterfaceOwnerAppId) pm - .find(ManagedInterfaceOwnerAppId.class, oid); - assertEquals(3, pc.getIFace().getIntFieldSup()); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceOwnerAppId) pm - .find(ManagedInterfaceOwnerAppId.class, oid); - assertEquals(3, pc.getIFace().getIntFieldSup()); - endEm(pm); - - pm = getPM(); - startTx(pm); - OpenJPAQuery q = pm.createNativeQuery("iface.intFieldSup==3", - ManagedInterfaceOwnerAppId.class); - Collection c = (Collection) q.getResultList(); - pc = (ManagedInterfaceOwnerAppId) c.iterator().next(); - assertEquals(3, pc.getIFace().getIntFieldSup()); - - pc.getIFace().setIntFieldSup(13); - assertEquals(13, pc.getIFace().getIntFieldSup()); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceOwnerAppId) pm - .find(ManagedInterfaceOwnerAppId.class, oid); - assertEquals(13, pc.getIFace().getIntFieldSup()); - endEm(pm); - } - - public void testCollection() { - OpenJPAEntityManager pm = getPM(); - startTx(pm); - ManagedInterfaceAppId pc = (ManagedInterfaceAppId) pm.createInstance - (ManagedInterfaceAppId.class); - Set set = new HashSet(); - set.add(new Integer(3)); - set.add(new Integer(4)); - set.add(new Integer(5)); - pc.setSetInteger(set); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetInteger(); - assertEquals(3, set.size()); - assertTrue(set.contains(new Integer(3))); - assertTrue(set.contains(new Integer(4))); - assertTrue(set.contains(new Integer(5))); - startTx(pm); - set.remove(new Integer(4)); - set.add(new Integer(14)); - set.add(new Integer(15)); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetInteger(); - assertEquals(4, set.size()); - assertTrue(set.contains(new Integer(3))); - assertTrue(set.contains(new Integer(5))); - assertTrue(set.contains(new Integer(14))); - assertTrue(set.contains(new Integer(15))); - startTx(pm); - pc.setSetInteger(null); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetInteger(); - assertTrue(set == null || set.size() == 0); - endEm(pm); - } - - public void testCollectionPC() { - OpenJPAEntityManager pm = getPM(); - startTx(pm); - ManagedInterfaceAppId pc = (ManagedInterfaceAppId) pm.createInstance - (ManagedInterfaceAppId.class); - Set set = new HashSet(); - set.add(new RuntimeTest1("a", 3)); - set.add(new RuntimeTest1("b", 4)); - set.add(new RuntimeTest1("c", 5)); - pc.setSetPC(set); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetPC(); - assertEquals(3, set.size()); - Collection seen = new ArrayList(); - RuntimeTest1 rel; - RuntimeTest1 toRem = null; - for (Iterator it = set.iterator(); it.hasNext();) { - rel = (RuntimeTest1) it.next(); - seen.add(rel.getStringField()); - if (rel.getIntField() == 4) - toRem = rel; - } - assertEquals(3, seen.size()); - assertTrue(seen.contains("a")); - assertTrue(seen.contains("b")); - assertTrue(seen.contains("c")); - startTx(pm); - assertNotNull(toRem); - set.remove(toRem); - set.add(new RuntimeTest1("x", 14)); - set.add(new RuntimeTest1("y", 15)); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetPC(); - assertEquals(4, set.size()); - seen.clear(); - for (Iterator it = set.iterator(); it.hasNext();) { - rel = (RuntimeTest1) it.next(); - seen.add(rel.getStringField()); - } - assertEquals(4, seen.size()); - assertTrue(seen.contains("a")); - assertTrue(seen.contains("c")); - assertTrue(seen.contains("x")); - assertTrue(seen.contains("y")); - startTx(pm); - pc.setSetPC(null); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetPC(); - assertTrue(set == null || set.size() == 0); - endEm(pm); - } - - public void testCollectionInterfaces() { - OpenJPAEntityManager pm = getPM(); - startTx(pm); - ManagedInterfaceAppId pc = (ManagedInterfaceAppId) pm.createInstance - (ManagedInterfaceAppId.class); - Set set = new HashSet(); - set.add(createInstance(pm, 3)); - set.add(createInstance(pm, 4)); - set.add(createInstance(pm, 5)); - pc.setSetI(set); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetI(); - assertEquals(3, set.size()); - Collection seen = new ArrayList(); - ManagedInterfaceAppId rel = null; - ManagedInterfaceAppId toRem = null; - for (Iterator it = set.iterator(); it.hasNext();) { - rel = (ManagedInterfaceAppId) it.next(); - seen.add(new Integer(rel.getIntField())); - if (rel.getIntField() == 4) - toRem = rel; - } - assertEquals(3, seen.size()); - assertTrue(seen.contains(new Integer(3))); - assertTrue(seen.contains(new Integer(4))); - assertTrue(seen.contains(new Integer(5))); - startTx(pm); - assertNotNull(toRem); - set.remove(toRem); - set.add(createInstance(pm, 14)); - set.add(createInstance(pm, 15)); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetI(); - assertEquals(4, set.size()); - seen.clear(); - for (Iterator it = set.iterator(); it.hasNext();) { - rel = (ManagedInterfaceAppId) it.next(); - seen.add(new Integer(rel.getIntField())); - } - assertEquals(4, seen.size()); - assertTrue(seen.contains(new Integer(3))); - assertTrue(seen.contains(new Integer(5))); - assertTrue(seen.contains(new Integer(14))); - assertTrue(seen.contains(new Integer(15))); - startTx(pm); - pc.setSetPC(null); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - set = pc.getSetPC(); - assertTrue(set == null || set.size() == 0); - endEm(pm); - } - - public void testUnimplementedThrowsException() { - OpenJPAEntityManager pm = getPM(); - ManagedInterfaceAppId pc = createInstance(pm, 1); - try { - pc.unimplemented(); - fail("Exception expected."); - } catch (Exception jdoe) { - } // good - endEm(pm); - } - - public void testDetach() { - OpenJPAEntityManager pm = getPM(); - startTx(pm); - ManagedInterfaceAppId pc = createInstance(pm, 4); - pm.persist(pc); - Object oid = pm.getObjectId(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - pc = (ManagedInterfaceAppId) pm.detach(pc); - endEm(pm); - - assertTrue(pm.isDetached(pc)); - pc.setIntField(7); - - pm = getPM(); - startTx(pm); - pm.persist(pc); - endTx(pm); - endEm(pm); - - pm = getPM(); - pc = (ManagedInterfaceAppId) pm.find(ManagedInterfaceAppId.class, oid); - assertEquals(7, pc.getIntField()); - endEm(pm); - } - - private ManagedInterfaceAppId createInstance(OpenJPAEntityManager pm, - int i) { - ManagedInterfaceAppId pc = (ManagedInterfaceAppId) pm - .createInstance(ManagedInterfaceAppId.class); - pc.setId1(i * 10); - pc.setId2(i * -10); - pc.setIntField(i); - return pc; - } -} diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPersistenceManagerFactoryImpl.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPersistenceManagerFactoryImpl.java index a0ed72f0c..42838ef67 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPersistenceManagerFactoryImpl.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestPersistenceManagerFactoryImpl.java @@ -192,7 +192,7 @@ public class TestPersistenceManagerFactoryImpl extends BaseKernelTest { protected OpenJPAEntityManagerFactory getEmf(Map props) { props.put("openjpa.BrokerFactory", BrokerFactoryTest.class.getName()); - return (OpenJPAEntityManagerFactory) getEmf(props); + return (OpenJPAEntityManagerFactory) super.getEmf(props); } public static class BrokerFactoryTest extends AbstractBrokerFactory { diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestRetainValuesInOptimistic.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestRetainValuesInOptimistic.java index 0b11839a7..85fca5ade 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestRetainValuesInOptimistic.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestRetainValuesInOptimistic.java @@ -67,6 +67,12 @@ public class TestRetainValuesInOptimistic extends BaseKernelTest { endEm(pm); } + @Override + protected void addProperties(Map map) { + super.addProperties(map); + map.put("openjpa.Log", "SQL=TRACE, Runtime=TRACE"); + } + public void testRetain() { clearTest(true); optLockTest(true); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSpecialNumbers.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSpecialNumbers.java index a5feebce2..5ba87df4c 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSpecialNumbers.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSpecialNumbers.java @@ -62,14 +62,14 @@ public class TestSpecialNumbers extends BaseKernelTest { public void testShortMax() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestshort(Short.MAX_VALUE); - saveAndQuery(aftt, "testshort == param", new Short(Short.MAX_VALUE)); + saveAndQuery(aftt, "testshort = :param", new Short(Short.MAX_VALUE)); } public void testShortMin() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestshort(Short.MIN_VALUE); try { - saveAndQuery(aftt, "testshort == param", + saveAndQuery(aftt, "testshort = :param", new Short(Short.MIN_VALUE)); } catch (Throwable t) { bug(AbstractTestCase.Platform.EMPRESS, 889, t, @@ -80,14 +80,14 @@ public class TestSpecialNumbers extends BaseKernelTest { public void testLongMax() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestlong(Long.MAX_VALUE); - saveAndQuery(aftt, "testlong == param", new Long(Long.MAX_VALUE)); + saveAndQuery(aftt, "testlong = :param", new Long(Long.MAX_VALUE)); } public void testLongMin() { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestlong(Long.MIN_VALUE); - saveAndQuery(aftt, "testlong == param", new Long(Long.MIN_VALUE)); + saveAndQuery(aftt, "testlong = :param", new Long(Long.MIN_VALUE)); } catch (Throwable t) { bug(AbstractTestCase.Platform.HYPERSONIC, 474, t, "Some databases cannot store Long.MIN_VALUE"); @@ -97,7 +97,7 @@ public class TestSpecialNumbers extends BaseKernelTest { public void testIntegerMax() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestint(Integer.MAX_VALUE); - saveAndQuery(aftt, "testint == param", + saveAndQuery(aftt, "testint = :param", new Integer(Integer.MAX_VALUE)); } @@ -105,7 +105,7 @@ public class TestSpecialNumbers extends BaseKernelTest { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestint(Integer.MIN_VALUE); try { - saveAndQuery(aftt, "testint == param", + saveAndQuery(aftt, "testint = :param", new Integer(Integer.MIN_VALUE)); } catch (Throwable t) { bug(AbstractTestCase.Platform.EMPRESS, 889, t, @@ -117,7 +117,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestfloat(Float.MAX_VALUE); - saveAndQuery(aftt, "testfloat == param", + saveAndQuery(aftt, "testfloat = :param", new Float(Float.MAX_VALUE)); } catch (Exception e) { bug(EnumSet.of(AbstractTestCase.Platform.POSTGRESQL, @@ -132,7 +132,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestfloat(Float.MIN_VALUE); - saveAndQuery(aftt, "testfloat == param", + saveAndQuery(aftt, "testfloat = :param", new Float(Float.MIN_VALUE)); } catch (Exception e) { bug(EnumSet.of(AbstractTestCase.Platform.POSTGRESQL, @@ -152,7 +152,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestfloat(Float.NaN); - saveAndQuery(aftt, "testfloat == param", new Float(Float.NaN)); + saveAndQuery(aftt, "testfloat = :param", new Float(Float.NaN)); } catch (Throwable t) { bug(461, t, "NaN problems"); } @@ -162,7 +162,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestfloat(Float.NEGATIVE_INFINITY); - saveAndQuery(aftt, "testfloat == param", + saveAndQuery(aftt, "testfloat = :param", new Float(Float.NEGATIVE_INFINITY)); } catch (Exception e) { bug(EnumSet.of(AbstractTestCase.Platform.POINTBASE, @@ -181,7 +181,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestfloat(Float.POSITIVE_INFINITY); - saveAndQuery(aftt, "testfloat == param", + saveAndQuery(aftt, "testfloat = :param", new Float(Float.POSITIVE_INFINITY)); } catch (Exception e) { bug(EnumSet.of(AbstractTestCase.Platform.POINTBASE, @@ -200,7 +200,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestdouble(Double.MAX_VALUE); - saveAndQuery(aftt, "testdouble == param", + saveAndQuery(aftt, "testdouble = :param", new Double(Double.MAX_VALUE)); } catch (Exception e) { bug(EnumSet.of(AbstractTestCase.Platform.POINTBASE, @@ -219,7 +219,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestdouble(Double.MIN_VALUE); - saveAndQuery(aftt, "testdouble == param", + saveAndQuery(aftt, "testdouble = :param", new Double(Double.MIN_VALUE)); } catch (Exception e) { bug(EnumSet.of(AbstractTestCase.Platform.POSTGRESQL, @@ -240,7 +240,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestdouble(Double.NaN); - saveAndQuery(aftt, "testdouble == param", new Double(Double.NaN)); + saveAndQuery(aftt, "testdouble = :param", new Double(Double.NaN)); } catch (Throwable t) { bug(461, t, "NaN problems"); } @@ -250,7 +250,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestdouble(Double.NEGATIVE_INFINITY); - saveAndQuery(aftt, "testdouble == param", + saveAndQuery(aftt, "testdouble = :param", new Double(Double.NEGATIVE_INFINITY)); } catch (Throwable t) { bug(461, t, "infinity problems"); @@ -261,7 +261,7 @@ public class TestSpecialNumbers extends BaseKernelTest { try { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestdouble(Double.POSITIVE_INFINITY); - saveAndQuery(aftt, "testdouble == param", + saveAndQuery(aftt, "testdouble = :param", new Double(Double.POSITIVE_INFINITY)); } catch (Throwable t) { bug(461, t, "infinity problems"); @@ -272,7 +272,7 @@ public class TestSpecialNumbers extends BaseKernelTest { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestbyte(Byte.MIN_VALUE); try { - saveAndQuery(aftt, "testbyte == param", new Byte(Byte.MIN_VALUE)); + saveAndQuery(aftt, "testbyte = :param", new Byte(Byte.MIN_VALUE)); } catch (Throwable t) { bug(AbstractTestCase.Platform.EMPRESS, 889, t, "Empress cannot store min values"); @@ -282,19 +282,19 @@ public class TestSpecialNumbers extends BaseKernelTest { public void testByteMax() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestbyte(Byte.MAX_VALUE); - saveAndQuery(aftt, "testbyte == param", new Byte(Byte.MAX_VALUE)); + saveAndQuery(aftt, "testbyte = :param", new Byte(Byte.MAX_VALUE)); } public void testZeroBigInteger() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestBigInteger(BigInteger.ZERO); - saveAndQuery(aftt, "testBigInteger == param", BigInteger.ZERO); + saveAndQuery(aftt, "testBigInteger = :param", BigInteger.ZERO); } public void testOneBigInteger() { AllFieldTypesTest aftt = new AllFieldTypesTest(); aftt.setTestBigInteger(BigInteger.ONE); - saveAndQuery(aftt, "testBigInteger == param", BigInteger.ONE); + saveAndQuery(aftt, "testBigInteger = :param", BigInteger.ONE); } private void saveAndQuery(Object obj, String query, Object param) { @@ -305,9 +305,9 @@ public class TestSpecialNumbers extends BaseKernelTest { endEm(pm); pm = getPM(); - OpenJPAQuery q = pm.createNativeQuery(query, obj.getClass()); - //FIXME jthomas - //q.declareParameters("Object param"); + OpenJPAQuery q = pm.createQuery("select o from " + + obj.getClass().getName() + " o where " + query); + q.setParameter("param", param); Collection c = (Collection) q.getResultList(); assertSize(1, c); endEm(pm); diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestStaticInnerClasses.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestStaticInnerClasses.java index 22a1d524f..2759b883f 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestStaticInnerClasses.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestStaticInnerClasses.java @@ -30,7 +30,7 @@ package org.apache.openjpa.persistence.kernel; import java.util.LinkedList; import java.util.List; import javax.persistence.Entity; - +import javax.persistence.Table; import org.apache.openjpa.persistence.OpenJPAEntityManager; @@ -116,6 +116,7 @@ public class TestStaticInnerClasses extends BaseKernelTest { } @Entity + @Table(name="StaticInner") public static class Inner { private int num = 0; diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/Inner.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/Inner.java index d0cf3273d..9e1636f39 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/Inner.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/Inner.java @@ -24,6 +24,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; +import javax.persistence.Column; @Entity @Table(name = "nullvalue") @@ -31,8 +32,11 @@ public class Inner { @Basic private Integer none = null; + @Basic(optional = false) + @Column(name="exception_col") private Integer exception = null; + @Id @GeneratedValue(strategy = GenerationType.AUTO) private int Id; diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCDirectory.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCDirectory.java index 198823c71..a61f7ddf0 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCDirectory.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCDirectory.java @@ -29,6 +29,7 @@ import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; +import javax.persistence.Column; import org.apache.openjpa.persistence.FetchAttribute; import org.apache.openjpa.persistence.FetchGroup; @@ -63,6 +64,7 @@ public class PCDirectory { @GeneratedValue(strategy = GenerationType.AUTO) private int id; + @Column(name="name_col") private String _name; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCFile.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCFile.java index 85a05845a..b1258edaf 100644 --- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCFile.java +++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/common/apps/PCFile.java @@ -26,10 +26,12 @@ import javax.persistence.CascadeType; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.ManyToOne; +import javax.persistence.Column; @Entity public class PCFile { + @Column(name="name_col") private String _name; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)