Re: Select Query on Table with no Primary Key

From: Michael Gentry (blacknex..mail.com)
Date: Wed Jun 06 2007 - 11:46:20 EDT

  • Next message: Craig L Russell: "Re: Select Query on Table with no Primary Key"

    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 <dmerri..pasystems.co.uk> 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.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:46:46 EDT