Eric,

A good first step would be to get the Cayenne 2.0.2 source, and post
the relevent line numbers.   Maybe it'll be obvious once we see what's
null.

On 3/6/07, Eric Floehr <[EMAIL PROTECTED]> wrote:
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




Reply via email to