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