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