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" <[EMAIL PROTECTED]>
To: <user@cayenne.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);
}