db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michelle Caisse (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JDO-539) JPA annotations tests fail
Date Tue, 09 Oct 2007 03:34:50 GMT

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

Michelle Caisse commented on JDO-539:
-------------------------------------

Hi Andy,

The goal was to have a Map field in Person (JPAAppPerson) that got mapped to a join table
(employee_phoneno_type). JPA seems to  require the Map value to be an entity, so we created
JPAAppPhoneNumber. I've remapped it as follows, and so far it seems to work, as we get to
the next problem (new JIRA):

In JPAAppPerson, the map key is now the oid of JPAAppPhoneNumber (JPA default):

    @OneToMany
    private Map<org.apache.jdo.tck.pc.companyAnnotatedJPA.JPAAppPhoneNumber.Oid,
            JPAAppPhoneNumber> phoneNumbers = new HashMap();

JPAAppPhoneNumber mappings:

    @Id
    @Column(name="PERSONID")
    private long personid;
    @Id
    @Column(name="TYPE")
    private String  type;
    @Column(name="PHONENO")
    private String  phoneNumber



> 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.


Mime
View raw message