[ 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