I had a Cayenne/PostgreSQL test/example application and used the default PK size of 20 and it worked OK for me. I haven't tried to run it in a few months, though, but I know that used to function correctly.
-----Original Message----- From: Lindsay Steele [mailto:[EMAIL PROTECTED] Sent: Thursday, April 20, 2006 4:44 PM To: [email protected] Subject: Re: PK problem with Postgre With Postgres, I found that I had to use a Custom Sequence - then put in the sequence name and then use a Cached PK Size of 1. This wasn't exactly intuitive and Postgres developers think Cayenne has issues - but it does seem to work. WONDER wrote: > Hi, > > I have problem with PostGreSQL ver 8.1.3 using JDBC ver 8.2dev-501 JDBC 3 > and Cayenne 1.2.B2. > > I use the Default Strategy to create the PKs using Cayenne. in the DB, i > created the SEQ : pk_TableName. like pk_image for Table image. > > Sometimes I get the following error and sometimes it just work. > Till now, I coulding find the logic behind. > > Anybody can help? > Thanks. > > ------------------------------------------------- > Priority : INFO > > Class.Method(line): > org.objectstyle.cayenne.access.QueryLogger.logQueryError(QueryLogger.jav a:43 > 9) > > Message: *** error. > > org.postgresql.util.PSQLException: ERROR: duplicate key violates unique > constraint "image_pk" > > at > org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecu torI > mpl.java:1513) > > at > org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImp l.ja > va:1298) > > at > org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java: 349) > > at > org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2St atem > ent.java:2559) > > at > org.objectstyle.cayenne.access.jdbc.BatchAction.runAsBatch(BatchAction.j ava: > 164) > > at > org.objectstyle.cayenne.access.jdbc.BatchAction.performAction(BatchActio n.ja > va:114) > > at > org.objectstyle.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQuer yAct > ion.java:95) > > at org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:309 ) > > at > org.objectstyle.cayenne.access.DataDomainFlushAction.runQueries(DataDoma inFl > ushAction.java:255) > > at > org.objectstyle.cayenne.access.DataDomainFlushAction.flush(DataDomainFlu shAc > tion.java:177) > > at > org.objectstyle.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:82 7) > > at > org.objectstyle.cayenne.access.DataDomain$2.transform(DataDomain.java:79 8) > > at > org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.ja va:8 > 53) > > at org.objectstyle.cayenne.access.DataDomain.onSync(DataDomain.java:795) > > at > org.objectstyle.cayenne.access.DataContext.flushToParent(DataContext.jav a:12 > 17) > > at > org.objectstyle.cayenne.access.DataContext.commitChanges(DataContext.jav a:11 > 21) > > at > de.mrer.base.CayenneBaseComponent.commitChanges(CayenneBaseComponent.jav a:65 > ) > > at ImageEditPage.uploadFile(ImageEditPage.java:99) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39 > ) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl > .java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at > KeyValueCodingProtectedAccessor.methodValue(KeyValueCodingProtectedAcces sor. > java:54) > > at > com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject( NSKe > yValueCoding.java:1160) > > at > com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueFo rKey > (NSKeyValueCoding.java:1268) > > at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1539) > > at > com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValu eCod > ing.java:498) > > at > com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementatio n.va > lueForKeyPath(NSKeyValueCodingAdditions.java:212) > > at > com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:16 00) > > at > com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent (WOK > eyValueAssociation.java:46) > > at > com.webobjects.appserver._private.WOSubmitButton.invokeAction(WOSubmitBu tton > .java:59) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at > com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComp onen > tContent.java:31) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at > com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComp onen > tContent.java:31) > > at > com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComp onen > tContent.java:31) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at > com.webobjects.appserver._private.WOConditional.invokeAction(WOCondition al.j > ava:55) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at > com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCo mpon > entReference.java:104) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver._private.WOForm.invokeAction(WOForm.java:82) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at > com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCo mpon > entReference.java:104) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at > com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCo mpon > entReference.java:104) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1168) > > at > com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1 375) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit hPre > paredPage(WOComponentRequestHandler.java:196) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit hPre > paredSession(WOComponentRequestHandler.java:287) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit hPre > paredApplication(WOComponentRequestHandler.java:322) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._handleReque st(W > OComponentRequestHandler.java:358) > > at > com.webobjects.appserver._private.WOComponentRequestHandler.handleReques t(WO > ComponentRequestHandler.java:432) > > at > com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.jav a:13 > 06) > > at > com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread. java > :173) > > at > com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java :254 > ) > > at java.lang.Thread.run(Thread.java:595) > > > -------- > > Priority : FATAL > > Class.Method(line): > de.mrer.base.BaseComponent.validationFailedWithException(BaseComponent.j ava: > 104) > > Message: de.mrer.exceptor.CustomException: [v.1.2B2 April 17 2006] Commit > Exception > > ======================== > > de.mrer.exceptor.CustomException: [v.1.2B2 April 17 2006] Commit Exception > > at > de.mrer.base.CayenneBaseComponent.commitChanges(CayenneBaseComponent.jav a:74 > ) > > at ImageEditPage.uploadFile(ImageEditPage.java:99) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39 > ) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl > .java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at > KeyValueCodingProtectedAccessor.methodValue(KeyValueCodingProtectedAcces sor. > java:54) > > at > com.webobjects.foundation.NSKeyValueCoding$_MethodBinding.valueInObject( NSKe > yValueCoding.java:1160) > > at > com.webobjects.foundation.NSKeyValueCoding$DefaultImplementation.valueFo rKey > (NSKeyValueCoding.java:1268) > > at com.webobjects.appserver.WOComponent.valueForKey(WOComponent.java:1539) > > at > com.webobjects.foundation.NSKeyValueCoding$Utility.valueForKey(NSKeyValu eCod > ing.java:498) > > at > com.webobjects.foundation.NSKeyValueCodingAdditions$DefaultImplementatio n.va > lueForKeyPath(NSKeyValueCodingAdditions.java:212) > > at > com.webobjects.appserver.WOComponent.valueForKeyPath(WOComponent.java:16 00) > > at > com.webobjects.appserver._private.WOKeyValueAssociation.valueInComponent (WOK > eyValueAssociation.java:46) > > at > com.webobjects.appserver._private.WOSubmitButton.invokeAction(WOSubmitBu tton > .java:59) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at > com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComp onen > tContent.java:31) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at > com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComp onen > tContent.java:31) > > at > com.webobjects.appserver._private.WOComponentContent.invokeAction(WOComp onen > tContent.java:31) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at > com.webobjects.appserver._private.WOConditional.invokeAction(WOCondition al.j > ava:55) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at > com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCo mpon > entReference.java:104) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver._private.WOForm.invokeAction(WOForm.java:82) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at > com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCo mpon > entReference.java:104) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at > com.webobjects.appserver._private.WOComponentReference.invokeAction(WOCo mpon > entReference.java:104) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeChildrenAction(WO Dyna > micGroup.java:101) > > at > com.webobjects.appserver._private.WODynamicGroup.invokeAction(WODynamicG roup > .java:110) > > at com.webobjects.appserver.WOComponent.invokeAction(WOComponent.java:945) > > at com.webobjects.appserver.WOSession.invokeAction(WOSession.java:1168) > > at > com.webobjects.appserver.WOApplication.invokeAction(WOApplication.java:1 375) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit hPre > paredPage(WOComponentRequestHandler.java:196) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit hPre > paredSession(WOComponentRequestHandler.java:287) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._dispatchWit hPre > paredApplication(WOComponentRequestHandler.java:322) > > at > com.webobjects.appserver._private.WOComponentRequestHandler._handleReque st(W > OComponentRequestHandler.java:358) > > at > com.webobjects.appserver._private.WOComponentRequestHandler.handleReques t(WO > ComponentRequestHandler.java:432) > > at > com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.jav a:13 > 06) > > at > com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread. java > :173) > > at > com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java :254 > ) > > at java.lang.Thread.run(Thread.java:595) > > ------------------------------------------------- > > >
