[ http://issues.apache.org/jira/browse/JDO-193?page=all ]
Michelle Caisse updated JDO-193:
--------------------------------
Attachment: JDO-193.patch
The attached patch implements a test for Map mapped without a join table. The
test fails:
javax.jdo.JDOUserException: One or more instances could not be made persistent
at
org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:1293)
at
org.apache.jdo.tck.mapping.CompletenessTestMap.localSetUp(CompletenessTestMap.java:78)
at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:236)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:252)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at
org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
at
org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
NestedThrowablesStackTrace:
javax.jdo.JDOUserException: Unable to find the field "department" in the class
"org.apache.jdo.tck.pc.companyMapWithoutJoin.Person" with a relationship to the
field "org.apache.jdo.tck.pc.companyMapWithoutJoin.Department.roles"
at
org.jpox.store.rdbms.table.ClassTable.initializeSQLAddUniqueConstraintsStatements(ClassTable.java:1994)
at
org.jpox.store.rdbms.table.ClassTable.runSpecifiedCallbacks(ClassTable.java:904)
at
org.jpox.store.rdbms.table.ClassTable.runCallBacks(ClassTable.java:869)
at
org.jpox.store.rdbms.table.ClassTable.addFieldMetaData(ClassTable.java:562)
at
org.jpox.store.rdbms.table.ClassTable.manageClass(ClassTable.java:388)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.initializeClassTables(RDBMSManager.java:2869)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:3214)
at
org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2457)
at
org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2309)
at org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:725)
at org.jpox.store.rdbms.RDBMSManager.addClass(RDBMSManager.java:739)
at org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:1142)
at
org.jpox.state.StateManagerImpl.populateStrategyFields(StateManagerImpl.java:764)
at org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:565)
at
org.jpox.state.StateManagerFactory.newStateManager(StateManagerFactory.java:105)
at
org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1185)
at
org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1241)
at
org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:1283)
at
org.apache.jdo.tck.mapping.CompletenessTestMap.localSetUp(CompletenessTestMap.java:78)
at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:236)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:252)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.textui.TestRunner.doRun(TestRunner.java:116)
at
org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122
> Need new test cases for Map and List where there is no join table; the key is
> a field of the value type or the value is a field of the key type
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: JDO-193
> URL: http://issues.apache.org/jira/browse/JDO-193
> Project: JDO
> Issue Type: Test
> Components: tck20
> Affects Versions: JDO 2 final
> Environment: TCK
> Reporter: Craig Russell
> Assigned To: Michelle Caisse
> Fix For: JDO 2 maintenance release 1
>
> Attachments: JDO-193.patch
>
>
> JDO allows mapping of Maps where there is no join table. The metadata for the
> Employee/Department mapping uses the mapped-by attribute of the map element:
> <class name="Department">
> <field name="employees" mapped-by="dept">
> <key mapped-by="id"/>
> </field>
> </class>
> <class name="Employee">
> <field name="id" column="ID"/>
> <field name="dept" column="DEPT"/>
> </class>
> Another mapping would have the key of the Map be the Employee and the value
> be the id.
> We should probably define a separate package for this mapping, as there is
> some confusion in using parts of the Company model where we have changed a
> significant part of the model.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira