Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.2 branch
-
None
Description
Committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error
WOMS_WORK inherits from STATUSABLE_WORK which
inherits from WORK. Ie, STATUSABLE_WORK's pk is dependent on WORK's pk, and WOMS_WORK's pk is dependent on STATUSABLE_WORK's pk. The relationship between WOMS_WORK and STATUSABLE_WORK is the join causing the error.
Leftover new object: {<ObjectId:WomsWork, TEMP:000003BAA6970161>; new; [statusableWork=>
{<ObjectId:StatusableWork, TEMP:000004BAA6970161>}]}
Leftover new object: {<ObjectId:StatusableWork, TEMP:000004BAA6970161>; new; [work=>
]}
Leftover new object: {<ObjectId:Work, TEMP:000005BAA6970161>; new; [statusableWorkList=>
]}
org.objectstyle.cayenne.CayenneRuntimeException: [v.1.2-dev April 10 2006] Some parts of FK are missing in snapshot, join: org.objectstyle.cayenne.map.DbJoin@9505f[source=WOMS_WORK_ID,target=ID]
at org.objectstyle.cayenne.access.DataNodePKGenerationAction.appendPkFromMasterRelationships(DataNodePKGenerationAction.java:250)
at org.objectstyle.cayenne.access.DataNodePKGenerationAction.createPermIdsForObjEntity(DataNodePKGenerationAction.java:143)
at org.objectstyle.cayenne.access.DataNodeInsertBucket.createPrimaryKey(DataNodeInsertBucket.java:97)
at org.objectstyle.cayenne.access.DataNodeFlushAction.createPK(DataNodeFlushAction.java:106)
at org.objectstyle.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:217)
at org.objectstyle.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:148)
at org.objectstyle.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:778)
at org.objectstyle.cayenne.access.DataDomain$2.transform(DataDomain.java:749)
at org.objectstyle.cayenne.access.DataDomain.runInTransaction(DataDomain.java:804)
at org.objectstyle.cayenne.access.DataDomain.onSync(DataDomain.java:746)
at org.objectstyle.cayenne.access.DataContext.flushToParent(DataContext.java:1217)
at org.objectstyle.cayenne.access.DataContext.commitChanges(DataContext.java:1121)
See thread http://objectstyle.org/cayenne/lists/cayenne-user/2006/04/0106.html for details.