Issue Details (XML | Word | Printable)

Key: JDO-193
Type: Test Test
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Michelle Caisse
Reporter: Craig Russell
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JDO

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

Created: 26/Oct/05 09:31 PM   Updated: 05/Oct/06 09:08 PM
Return to search
Component/s: tck2
Affects Version/s: JDO 2 final
Fix Version/s: JDO 2 maintenance release 1

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works JDO-193.patch 2006-09-08 04:08 AM Michelle Caisse 248 kB
Environment: TCK

Resolution Date: 05/Oct/06 09:08 PM


 Description  « Hide
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.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Craig Russell made changes - 04/Feb/06 04:27 AM
Field Original Value New Value
Affects Version/s JDO 2 beta [ 12310683 ]
Fix Version/s JDO 2 rc1 [ 12310771 ]
Craig Russell made changes - 25/Feb/06 07:41 AM
Fix Version/s JDO 2 final [ 12310830 ]
Fix Version/s JDO 2 rc1 [ 12310771 ]
Craig Russell added a comment - 18/Mar/06 12:34 AM
I propose to defer this for a maintenance revision of the TCK.

Craig Russell made changes - 18/Mar/06 12:34 AM
Fix Version/s JDO 2 final [ 12310830 ]
Craig Russell added a comment - 16/Jun/06 04:21 AM
JDO also allows mapping Lists where there is no join table, and the ordering element is contained in the related table.

This should be investigated at the same time.

Craig Russell made changes - 16/Jun/06 04:21 AM
Affects Version/s JDO 2 final [ 12310830 ]
Assignee Michelle Caisse [ mcaisse ]
Affects Version/s JDO 2 beta [ 12310683 ]
Fix Version/s JDO 2 maintenance release 1 [ 12310923 ]
Craig Russell made changes - 11/Aug/06 04:52 PM
Summary Need new test cases for Map 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 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
Michelle Caisse added a comment - 08/Sep/06 04:08 AM
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

Michelle Caisse made changes - 08/Sep/06 04:08 AM
Attachment JDO-193.patch [ 12340438 ]
Michelle Caisse made changes - 08/Sep/06 08:34 PM
Status Open [ 1 ] In Progress [ 3 ]
Michelle Caisse added a comment - 08/Sep/06 08:35 PM
Checked in patch at revision 441641

Repository Revision Date User Message
ASF #441641 Fri Sep 08 20:37:08 UTC 2006 mcaisse JDO-193 Test for Map without join table
Files Changed
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/IDepartment.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/mapping/CompletenessTestMap.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/IEmployee.java
ADD /db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/IPartTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin/package-standard9.orm
ADD /db/jdo/trunk/tck20/src/jdo/applicationidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin/package.jdo
ADD /db/jdo/trunk/tck20/src/jdo/applicationidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/IFullTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyFactoryPMInterface.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyFactoryPMClass.java
ADD /db/jdo/trunk/tck20/src/jdo/datastoreidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin/package.jdo
ADD /db/jdo/trunk/tck20/src/jdo/datastoreidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Person.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/ICompany.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Department.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyFactoryConcreteClass.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyFactoryAbstractImpl.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyModelReader.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Employee.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/PartTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/sql/derby/applicationidentity/schema9.sql
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyFactory.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/FullTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/CompanyFactoryRegistry.java
ADD /db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/IPerson.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyMapWithoutJoin/Company.java
ADD /db/jdo/trunk/tck20/src/sql/derby/datastoreidentity/schema9.sql
ADD /db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin/package-standard9.orm

Repository Revision Date User Message
ASF #441669 Fri Sep 08 21:50:17 UTC 2006 mcaisse JDO-193 missing file
Files Changed
ADD /db/jdo/trunk/tck20/src/conf/companyMapWithoutJoin.conf

Repository Revision Date User Message
ASF #441681 Fri Sep 08 22:57:14 UTC 2006 mcaisse JDO-193 Added missing unique constraint to allow fk constraint.
Files Changed
MODIFY /db/jdo/trunk/tck20/src/sql/derby/datastoreidentity/schema9.sql

Repository Revision Date User Message
ASF #441687 Fri Sep 08 23:22:37 UTC 2006 mcaisse JDO-193 More missing files
Files Changed
ADD /db/jdo/trunk/tck20/src/testdata/org/apache/jdo/tck/pc/companyMapWithoutJoin/companyMapWithoutJoin.xml
ADD /db/jdo/trunk/tck20/src/testdata/org/apache/jdo/tck/pc/companyMapWithoutJoin

Michelle Caisse added a comment - 19/Sep/06 10:27 PM
Added files for mapping List without a join table: revision: 447999

Repository Revision Date User Message
ASF #447999 Tue Sep 19 22:29:56 UTC 2006 mcaisse JDO-193 Add files for mapping a List field without a join table. Also, fix a problem in jdo metadata for companyMapWithoutJoin.
Files Changed
ADD /db/jdo/trunk/tck20/src/jdo/applicationidentity/org/apache/jdo/tck/pc/companyListWithoutJoin/package.jdo
ADD /db/jdo/trunk/tck20/src/sql/derby/applicationidentity/schema10.sql
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/mapping/CompletenessTestList.java
ADD /db/jdo/trunk/tck20/src/jdo/applicationidentity/org/apache/jdo/tck/pc/companyListWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/IEmployee.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/IPartTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/testdata/org/apache/jdo/tck/pc/companyListWithoutJoin/companyListWithoutJoin.xml
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin
ADD /db/jdo/trunk/tck20/src/conf/companyListWithoutJoin.conf
ADD /db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/companyListWithoutJoin/package-standard10.orm
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyFactoryPMClass.java
MODIFY /db/jdo/trunk/tck20/src/jdo/datastoreidentity/org/apache/jdo/tck/pc/companyMapWithoutJoin/package.jdo
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/ICompany.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Department.java
MODIFY /db/jdo/trunk/tck20/src/conf/configurations.list
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/FullTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/IDepartment.java
ADD /db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/companyListWithoutJoin/package-standard10.orm
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/IFullTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/orm/datastoreidentity/org/apache/jdo/tck/pc/companyListWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyFactoryPMInterface.java
ADD /db/jdo/trunk/tck20/src/testdata/org/apache/jdo/tck/pc/companyListWithoutJoin
ADD /db/jdo/trunk/tck20/src/orm/applicationidentity/org/apache/jdo/tck/pc/companyListWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Person.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyFactoryConcreteClass.java
MODIFY /db/jdo/trunk/tck20/project.properties
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyFactoryAbstractImpl.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyModelReader.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Employee.java
ADD /db/jdo/trunk/tck20/src/jdo/datastoreidentity/org/apache/jdo/tck/pc/companyListWithoutJoin/package.jdo
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/PartTimeEmployee.java
ADD /db/jdo/trunk/tck20/src/sql/derby/datastoreidentity/schema10.sql
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyFactory.java
ADD /db/jdo/trunk/tck20/src/jdo/datastoreidentity/org/apache/jdo/tck/pc/companyListWithoutJoin
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/IPerson.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/Company.java
ADD /db/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/companyListWithoutJoin/CompanyFactoryRegistry.java

Michelle Caisse added a comment - 05/Oct/06 09:08 PM
JDO-430 is now tracking the remaining issues on this case.

Michelle Caisse made changes - 05/Oct/06 09:08 PM
Status In Progress [ 3 ] Resolved [ 5 ]
Resolution Fixed [ 1 ]