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 <andru..bjectstyle.org> 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
>>
>
>
This archive was generated by hypermail 2.0.0 : Tue Aug 05 2008 - 17:05:43 EDT