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:[EMAIL PROTECTED] Gesendet: Dienstag, 6. März 2007 19:37 An: [email protected] 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
