Thanks for the help, Peter! However, when I change:
MyType type = (MyType) context.newObject(MyType.class);
to:
MyType type = (MyType) context. createAndRegisterNewObject(MyType.class);
I still end up with the same NPE:
Exception in thread "main" java.lang.NullPointerException
at org.apache.cayenne.access.ObjectStoreGraphDiff.preprocess(ObjectStoreGraphDiff.java:184)
at org.apache.cayenne.access.ObjectStoreGraphDiff.<init>(ObjectStoreGraphDiff.java:53)
at org.apache.cayenne.access.ObjectStore.getChanges(ObjectStore.java:496)
at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1208)
at org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1130)
...
-Eric
-----Original Message-----
From: Peter Schröder [mailto:Peter.Schroede..reenet-ag.de]
Sent: Wednesday, March 07, 2007 2:20 AM
To: use..ayenne.apache.org
Subject: AW: Help: getting NPE at ObjectStoreGraphDiff.preprocess
i am not quite sure, but i think that you have to use
context.createAndRegister(MyType.class);
instead of
context.newObject(MyType.class);
-----Ursprüngliche Nachricht-----
Von: Eric Floehr [mailto:efloeh..oxicom.com]
Gesendet: Dienstag, 6. März 2007 19:37
An: use..ayenne.apache.org
Betreff: Help: getting NPE at ObjectStoreGraphDiff.preprocess
Hi!
I am new to Cayenne, and am having some problems. I have been able to
populate some DB records, but when I try to set up a relationship, I get
an NPE on the commit. I am using Cayenne 2.0.2.
Here is the essential code (with some names changed to protect the
innocent):
MyType type = (MyType) context.newObject(MyType.class);
type.setObjectId(new ObjectId(MyType.class.getSimpleName(),
MyType.MYTYPE_ID_PK_COLUMN, 1));
type.setName("MyName");
MyCategory category = (MyCategory)DataObjectUtils.objectForPK(context,
MyCategory.class, 1);
type.setMyCategory(category);
context.commitChanges();
The MyType table has fields mytype_id (the primary key), name, and a
mycategory_id (foreign key to the mycategory table). I am creating a
new "MyType" object with a mytype_id of 1, name of "MyName", and
pointing to a Category object, that is already in the database, with a
primary key of 1.
When commitChanges() runs, I get:
Exception in thread "main" java.lang.NullPointerException
at
org.apache.cayenne.access.ObjectStoreGraphDiff.preprocess(ObjectStoreGra
phDiff.java:184)
at
org.apache.cayenne.access.ObjectStoreGraphDiff.<init>(ObjectStoreGraphDi
ff.java:53)
at
org.apache.cayenne.access.ObjectStore.getChanges(ObjectStore.java:496)
at
org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:120
8)
at
org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:113
0)
at
com.boxicom.server.db.CreateDb.testStreamTypeAdd(CreateDb.java:96)
at com.boxicom.server.db.CreateDb.main(CreateDb.java:105)
Can anyone help me determine what is going wrong?
Thanks much!
Eric
This archive was generated by hypermail 2.0.0 : Wed Mar 07 2007 - 08:23:06 EST