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

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Wed May 16 2007 - 13:17:38 EDT

  • Next message: Frank: "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:18:07 EDT