Re: How do I get a record for non integer pk?

From: Frank (farocc..otmail.com)
Date: Wed May 16 2007 - 13:23:26 EDT

  • Next message: Andrus Adamchik: "Re: How do I get a record for non integer pk?"

    I think it has something to do with Click CayenneForm
    I changed CayenneForm to Form and it works.

    Seems CayenneForm is tring to fetch my int id

    Frank
    ----- Original Message -----
    From: "Andrus Adamchik" <andru..bjectstyle.org>
    To: <use..ayenne.apache.org>
    Sent: Wednesday, May 16, 2007 1:17 PM
    Subject: Re: How do I get a record for non integer pk?

    > These two lines are not the same:
    >
    >> at org.objectstyle.cayenne.DataObjectUtils.intPKForObject
    >> (DataObjectUtils.java:93)
    >
    >
    >>> s = (System) DataObjectUtils.objectForPK(context, System.class,
    >>> name);
    >
    > So now you are talking about a different problem. To fix your latest
    > problem use "pkForObject" instead of "intPKForObject"....
    >
    > Andrus
    >
    >
    > On May 16, 2007, at 8:11 PM, Frank wrote:
    >
    >> Does it have someting to do with the System name? reserved word?
    >>
    >> Class org.objectstyle.cayenne.CayenneRuntimeException
    >> Message [v.1.2.3 May 6 2007] PK is not a number: <ObjectId:System,
    >> System=AIX>
    >> org.objectstyle.cayenne.CayenneRuntimeException: [v.1.2.3 May 6
    >> 2007] PK is not a number: <ObjectId:System, System=AIX>
    >> at org.objectstyle.cayenne.DataObjectUtils.intPKForObject
    >> (DataObjectUtils.java:93)
    >> at net.sf.click.extras.cayenne.CayenneForm.setDataObject
    >> (CayenneForm.java:335)
    >> at stemc.page.EditSystemPage.getRecord(EditSystemPage.java:41)
    >> at stemc.page.EditSystemPage.onGet(EditSystemPage.java:71)
    >>
    >> Thanks
    >>
    >> Frank
    >>
    >>
    >> ----- Original Message ----- From: "Bryan Lewis" <brya..aine.rr.com>
    >> To: <use..ayenne.apache.org>
    >> Sent: Wednesday, May 16, 2007 1:01 PM
    >> Subject: Re: How do I get a record for non integer pk?
    >>
    >>
    >>> We use that objectForPK() method routinely with a String key and
    >>> haven't
    >>> had any problems.
    >>> What do you mean by "not working"? Is it throwing a
    >>> CayenneRuntimeException?
    >>>
    >>>
    >>> Frank wrote:
    >>>> Hello,
    >>>>
    >>>> The code below is not working, as it expects the PK to be integer.
    >>>> There is only one String field in the table defined as a pk.
    >>>>
    >>>> Thanks
    >>>>
    >>>> Frank
    >>>>
    >>>> private void getRecord(String name) {
    >>>> DataContext context = DataContext.getThreadDataContext();
    >>>> System s = new System();
    >>>> s = (System) DataObjectUtils.objectForPK(context,
    >>>> System.class, name);
    >>>> form.setDataObject(s);
    >>>> }
    >>>>
    >>>
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed May 16 2007 - 13:24:35 EDT