[
https://issues.apache.org/jira/browse/JDO-539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12534356
]
Andy Jefferson commented on JDO-539:
------------------------------------
Hi Craig,
JPOX uses standard JPA1, as in the released spec, as in the JPA1 TCK. This spec
doesn't define reuse of columns that have different types (equating a long to
an Object of some arbitrary persistable type), or at least not from my reading
of it. Defining persistence of a compound identity relation in that way is a
hack. Nobody would define an Order-OrderLine in that way in Java. The Order
object in the OrderLine would be marked as the PK (and it would have mapped-by
on it at the other side too since its bidir), not by adding some artificial
long.
Should we really be basing JDO-JPA TCK tests on some implementation trick, or
just the facts in the JPA1 spec ?
If you have visibility of some JPA2 spec (which we don't have) that defines how
they plan on supporting CompoundIdentity then i'd be happy to implement it
(when I have time), but I haven't got such visibility.
> JPA annotations tests fail
> --------------------------
>
> Key: JDO-539
> URL: https://issues.apache.org/jira/browse/JDO-539
> Project: JDO
> Issue Type: Bug
> Components: tck2
> Affects Versions: JDO 2 maintenance release 1
> Reporter: Michelle Caisse
> Assignee: Michelle Caisse
>
> companyAnnotatedNoRelationshipsJPAConcrete.conf and
> companyAnnotatedNoRelationshipsJPAConcrete.conf fail:
> test(org.apache.jdo.tck.mapping.CompletenessTest)javax.jdo.JDOUserException:
> One or more instances could not be made persistent
> at
> org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:694)
> at
> org.apache.jdo.tck.mapping.CompletenessTest.localSetUp(CompletenessTest.java:79)
> at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:237)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:253)
> at
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:108)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:148)
> at
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)
> NestedThrowablesStackTrace:
> javax.jdo.JDOFatalInternalException: Duplicate column name "PERSONID" defined
> for table "applicationidentity0.EMPLOYEE_PHONENO_TYPE". You cannot map
> multiple fields to the same column. The duplicated columns are specified by
> org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.personid and
> org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.person.
> at
> org.jpox.jdo.JPOXJDOHelper.getJDOExceptionForJPOXException(JPOXJDOHelper.java:369)
> at
> org.jpox.AbstractPersistenceManager.jdoMakePersistent(AbstractPersistenceManager.java:631)
> at
> org.jpox.AbstractPersistenceManager.makePersistentAll(AbstractPersistenceManager.java:680)
> at
> org.apache.jdo.tck.mapping.CompletenessTest.localSetUp(CompletenessTest.java:79)
> at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:237)
> at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:253)
> at
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:108)
> at
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:148)
> at
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)
> NestedThrowablesStackTrace:
> Duplicate column name "PERSONID" defined for table
> "applicationidentity0.EMPLOYEE_PHONENO_TYPE". You cannot map multiple fields
> to the same column. The duplicated columns are specified by
> org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.personid and
> org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.person.
> org.jpox.store.rdbms.exceptions.DuplicateColumnNameException: Duplicate
> column name "PERSONID" defined for table
> "applicationidentity0.EMPLOYEE_PHONENO_TYPE". You cannot map multiple fields
> to the same column. The duplicated columns are specified by
> org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.personid and
> org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.person.
> at
> org.jpox.store.rdbms.table.AbstractTable.addDatastoreField(AbstractTable.java:261)
> at
> org.jpox.store.rdbms.mapping.RDBMSMappingManager.createDatastoreField(RDBMSMappingManager.java:840)
> at
> org.jpox.store.mapping.PersistenceCapableMapping.prepareDatastoreMapping(PersistenceCapableMapping.java:227)
> at
> org.jpox.store.mapping.PersistenceCapableMapping.initialize(PersistenceCapableMapping.java:123)
> at
> org.jpox.store.mapping.MappingFactory.createMapping(MappingFactory.java:93)
> at
> org.jpox.store.mapping.AbstractMappingManager.getMapping(AbstractMappingManager.java:234)
> at
> org.jpox.store.rdbms.table.ClassTable.manageFields(ClassTable.java:520)
> at
> org.jpox.store.rdbms.table.ClassTable.manageClass(ClassTable.java:400)
> at
> org.jpox.store.rdbms.table.ClassTable.initializeForClass(ClassTable.java:971)
> at org.jpox.store.rdbms.table.ClassTable.initialize(ClassTable.java:271)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.initializeClassTables(RDBMSManager.java:3408)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:3315)
> at
> org.jpox.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2943)
> at
> org.jpox.store.rdbms.RDBMSManager$MgmtTransaction.execute(RDBMSManager.java:2822)
> at org.jpox.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:859)
> at org.jpox.store.StoreManager.addClass(StoreManager.java:481)
> at org.jpox.store.StoreManager.getDatastoreClass(StoreManager.java:1089)
> at
> org.jpox.state.JDOStateManagerImpl.populateStrategyFields(JDOStateManagerImpl.java:661)
> at
> org.jpox.state.JDOStateManagerImpl.initialiseForPersistentNew(JDOStateManagerImpl.java:408)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.