I don't want to hijack this thread, but just point out that JPA does
not support tables without primary key; JDO does (including updates)
as an optional feature.
Craig
On Jun 6, 2007, at 8:41 AM, Dave Merrin 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 <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.interceptObjectConve
>>> rsion(
>>> 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)
>>>
>>
>
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russel..un.com
P.S. A good JDO? O, Gasp!
This archive was generated by hypermail 2.0.0 : Wed Jun 06 2007 - 11:48:48 EDT