For some reason or another, I am not seeing this problem anymore. I think this may have been caused by another issue, for which I will create a separate thread.
On Thu, Jul 31, 2008 at 2:21 PM, Andrus Adamchik <[EMAIL PROTECTED]> wrote: > Hi Dave, > > MyDataObject is likely mapped to get its PK from the related "master" > object. The exception means that the "master" object does not yet have a PK > yet when MyDataObject is committed. So how is the PK generation set for the > master object entity? Are you using auto-incremented PKs by any chance? Do > you see the master saved before MyDataObject in the SQL log? > > Andrus > > On Jul 30, 2008, at 11:43 PM, Dave Dombrosky wrote: > >> I am currently getting a strange exception when trying to commit some >> objects to the db. I'm hoping someone here can help me figure it out. >> >> org.apache.cayenne.CayenneRuntimeException: [v.3.0-SNAPSHOT May 16 >> 2008 12:28:23] Can't extract a master key. Missing key (id), master ID >> (<ObjectId:MyDataObject, TEMP:001A1A0065510101>) >> at >> org.apache.cayenne.access.DataDomainSyncBucket$PropagatedValueFactory.create(DataDomainSyncBucket.java:303) >> at org.apache.cayenne.query.BatchQuery.getValue(BatchQuery.java:171) >> at >> org.apache.cayenne.query.InsertBatchQuery.getValue(InsertBatchQuery.java:62) >> at >> org.apache.cayenne.access.trans.InsertBatchQueryBuilder.getParameterValues(InsertBatchQueryBuilder.java:83) >> at >> org.apache.cayenne.access.jdbc.BatchAction.runAsBatch(BatchAction.java:121) >> at >> org.apache.cayenne.access.jdbc.BatchAction.performAction(BatchAction.java:80) >> at >> org.apache.cayenne.access.DataNodeQueryAction.runQuery(DataNodeQueryAction.java:58) >> at >> org.apache.cayenne.access.DataNode.performQueries(DataNode.java:230) >> at >> org.apache.cayenne.access.DataDomainFlushAction.runQueries(DataDomainFlushAction.java:227) >> at >> org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:145) >> at >> org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:821) >> at >> org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:788) >> at >> org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847) >> at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:785) >> at >> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1164) >> at >> org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1066) >> >> Any idea what this means? I'm using some 1:1 mappings on the PK of >> this table, and also some cayenne inheritance, so it's possible I set >> something up wrong. >> >> -Dave >> > >