Re: Select Query on Table with no Primary Key

From: Dave Merrin (dmerri..pasystems.co.uk)
Date: Wed Jun 06 2007 - 12:01:38 EDT

  • Next message: Michael Gentry: "Re: Select Query on Table with no Primary Key"

    Cheers, I'll give it a try.

    Dave

    Michael Gentry wrote:
    > 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 - 12:04:12 EDT