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 <dmerri..pasystems.co.uk> 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)
>
This archive was generated by hypermail 2.0.0 : Wed Jun 06 2007 - 11:27:48 EDT