You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Andy Jefferson (JIRA)" <ji...@apache.org> on 2007/10/06 19:13:50 UTC

[jira] Commented: (JDO-539) JPA annotations tests fail

    [ https://issues.apache.org/jira/browse/JDO-539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12532904 ] 

Andy Jefferson commented on JDO-539:
------------------------------------

Hi Michelle,
what is the mapping in JPAAppPhoneNumber supposed to be doing ?
public class JPAAppPhoneNumber implements Serializable {
    @Id
    @Column(name="PERSONID")
    private long personid;

    @ManyToOne
    @JoinColumn(name="PERSONID", insertable=false, updatable=false)
    private JPAAppPerson person;

    ...
}

You have a PK field with a column name of PERSONID, and you also want a N-1 to have a FK using the same column (the PK) ? I'd expect the second to have its own column - it cannot reuse the PK (JPA1 has no support for "compound identity"/"identifying" relations)

> 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: Andy Jefferson
>
> 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.