Re: Select Query on Table with no Primary Key

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

  • Next message: Dave Merrin: "Re: Select Query on Table with no Primary Key"

    Sorry, I forgot to mention again....these are views, not tables.

    Dave

    Craig L Russell wrote:
    > 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.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)
    >>>>
    >>>
    >>
    >
    > 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 - 12:03:14 EDT