Return-Path: Delivered-To: apmail-geronimo-user-archive@www.apache.org Received: (qmail 46518 invoked from network); 27 Nov 2007 12:44:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 27 Nov 2007 12:44:12 -0000 Received: (qmail 52250 invoked by uid 500); 27 Nov 2007 12:43:43 -0000 Delivered-To: apmail-geronimo-user-archive@geronimo.apache.org Received: (qmail 52230 invoked by uid 500); 27 Nov 2007 12:43:43 -0000 Mailing-List: contact user-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: user@geronimo.apache.org List-Id: Delivered-To: mailing list user@geronimo.apache.org Received: (qmail 52214 invoked by uid 99); 27 Nov 2007 12:43:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Nov 2007 04:43:43 -0800 X-ASF-Spam-Status: No, hits=2.6 required=10.0 tests=DNS_FROM_OPENWHOIS,SPF_HELO_PASS,SPF_PASS,WHOIS_MYPRIVREG X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of lists@nabble.com designates 216.139.236.158 as permitted sender) Received: from [216.139.236.158] (HELO kuber.nabble.com) (216.139.236.158) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 27 Nov 2007 12:43:44 +0000 Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1Iwzmd-0005Mb-71 for user@geronimo.apache.org; Tue, 27 Nov 2007 04:43:23 -0800 Message-ID: <13970135.post@talk.nabble.com> Date: Tue, 27 Nov 2007 04:43:23 -0800 (PST) From: maho77 To: user@geronimo.apache.org Subject: Re: EntityExistsException: Attempt to persist detached object In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: m.hoffmann@mvolution.de References: <13897173.post@talk.nabble.com> X-Virus-Checked: Checked by ClamAV on apache.org djencks wrote: > > My experience is that to get openjpa sequences to work you NEED a non > transactional non-jta-datasource specified in your persistence.xml > > yyyDataSouurce > > where the configuration of yyyDataSouurce includes > > > > In particular it can't be the same datasource you use for the jta- > data-source > > thanks > david jencks > > Hello, thanks, I did it like you advised and I worked. But not as expected. I received the following exception: org.apache.openjpa.util.StoreException: Attempt to update the sequence table "ID_GENERATOR" failed. The sequence table is typically created when you run the mappingtool's refresh action on any datastore identity class. If you have not run the mappingtool but want to create the sequence table, run: java org.apache.openjpa.jdbc.kernel.TableJDBCSeq -action add at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3849) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97) at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:75) at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:346) at org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:247) at org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60) at org.apache.openjpa.util.ImplHelper.generateValue(ImplHelper.java:160) at org.apache.openjpa.util.ImplHelper.generateFieldValue(ImplHelper.java:144) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignField(JDBCStoreManager.java:557) at org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:450) at org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:426) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:541) at org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:134) at org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:501) at org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2770) at org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:39) at org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:940) at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1884) at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1844) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1762) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499) at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(TransactionImpl.java:400) at org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.java:257) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(TransactionManagerImpl.java:239) at org.apache.openejb.core.transaction.TransactionPolicy.commitTransaction(TransactionPolicy.java:140) at org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:75) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:219) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165) at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:212) at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:120) at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:164) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:122) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:84) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:60) at org.apache.openejb.server.ServiceLogger.service(ServiceLogger.java:73) at org.apache.openejb.server.ServiceAccessController.service(ServiceAccessController.java:55) at org.apache.openejb.server.ServiceDaemon$1.run(ServiceDaemon.java:117) at java.lang.Thread.run(Thread.java:810) With this annotations in my entity: @TableGenerator(name="GroupIdGen", table="ID_GENERATOR", pkColumnName="name", valueColumnName="id_value", pkColumnValue="group_table", allocationSize=1) @Id @GeneratedValue(strategy=GenerationType.TABLE, generator="GroupIdGen") and the table looks like this: CREATE TABLE ID_GENERATOR ( name VARCHAR(100) NOT NULL, id_value INTEGER UNSIGNED NOT NULL, PRIMARY KEY(name) ); So according to this exception I changed the table to: CREATE TABLE ID_GENERATOR ( name0 VARCHAR(100) NOT NULL, id_value INTEGER UNSIGNED NOT NULL, PRIMARY KEY(name0) ); And it worked without any changes in the annotation. Can you explain this? Thank you very much. Mark -- View this message in context: http://www.nabble.com/EntityExistsException%3A-Attempt-to-persist-detached-object-tf4856534s134.html#a13970135 Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.