The only thing I can think of trying (and maybe Andrus/Tore/Mike/etc would have better ideas) is to model that ObjEntity (and perhaps others it relates to?) as read-only and see if Cayenne stops caring about missing a PK. Just a thought -- I've not tried it.
/dev/mrg On 6/6/07, Dave Merrin <[EMAIL PROTECTED]> wrote:
Sorry, I forgot to mention that I won't be updating the data. I would like to move round the database using relationships though. Apart from changing the database are there any hacks I could try to get round this problem. Cheers, Dave Michael Gentry wrote: > Cayenne needs PKs in order to do UPDATEs. If you aren't modifying the > data, > you might try fetching as data rows instead of CayenneDataObjects. > I'm not > certain if that would work, but has a much higher chance. Of course, you > still won't be able to make a CayenneDataObject out of it. > > /dev/mrg > > > On 6/6/07, Dave Merrin <[EMAIL PROTECTED]> wrote: >> >> Hi, >> >> I'm trying to run a SelectQuery on a table with no primary key. >> Unfortunately it's not working. Can anybody help? I have no control over >> the database so I can't add in primary keys. >> >> Cheers, >> >> Dave >> >> INFO QueryLogger: SELECT t0.ID, t0.KIND, t0.TIMESTAMP FROM >> MPS.STATETABLE_CPT t0 >> INFO QueryLogger: === returned 949 rows. - took 203 ms. >> INFO QueryLogger: +++ transaction committed. >> Exception in thread "main" org.apache.cayenne.CayenneRuntimeException: >> [v.2.0.3 May 6 2007] Won't be able to create ObjectId for >> 'StatetableCpt'. Reason: DbEntity 'STATETABLE_CPT' has no Primary Key >> defined. >> at >> org.apache.cayenne.access.ObjectResolver.init(ObjectResolver.java:75) >> at >> org.apache.cayenne.access.ObjectResolver.<init>(ObjectResolver.java:57) >> at >> org.apache.cayenne.access.DataDomainQueryAction.interceptObjectConversion( >> >> DataDomainQueryAction.java:319) >> at >> org.apache.cayenne.access.DataDomainQueryAction.execute( >> DataDomainQueryAction.java:116) >> at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java >> :746) >> at >> org.apache.cayenne.util.ObjectContextQueryAction.runQuery( >> ObjectContextQueryAction.java:217) >> at >> org.apache.cayenne.access.DataContextQueryAction.execute( >> DataContextQueryAction.java:54) >> at >> org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1387) >> at >> org.apache.cayenne.access.DataContext.performQuery(DataContext.java :1376) >> >> at >> ipa.printexpress.datahelpers.Session.fetchEntityCollection(Session.java >> :158) >> at >> ipa.px.importer.abb.ABBImporterMain.main(ABBImporterMain.java:109) >> >