Return-Path: Delivered-To: apmail-db-jdo-dev-archive@www.apache.org Received: (qmail 82269 invoked from network); 9 Oct 2007 03:35:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 9 Oct 2007 03:35:21 -0000 Received: (qmail 45519 invoked by uid 500); 9 Oct 2007 03:35:09 -0000 Mailing-List: contact jdo-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-dev@db.apache.org Received: (qmail 45508 invoked by uid 99); 9 Oct 2007 03:35:09 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Oct 2007 20:35:09 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Oct 2007 03:35:12 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id D4181714208 for ; Mon, 8 Oct 2007 20:34:50 -0700 (PDT) Message-ID: <33280788.1191900890866.JavaMail.jira@brutus> Date: Mon, 8 Oct 2007 20:34:50 -0700 (PDT) From: "Michelle Caisse (JIRA)" To: jdo-dev@db.apache.org Subject: [jira] Commented: (JDO-539) JPA annotations tests fail In-Reply-To: <17180400.1191558890564.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ 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 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.