cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joseph Senecal <sene...@apple.com>
Subject Can't extract a master key exception
Date Wed, 12 Oct 2011 23:01:30 GMT
I'm getting a strange exception when adding a detail record in the same commit as the master
record.

Both the master and detail records are defined in Oracle as having a primary key consisting
of the surrogate key plus “SUBMITDATE”. The Cayenne map shows the primary key is just
the surrogate keys.

The join between the two tables consist of the master tables surrogate key plus the partition
key (“SUBMITDATE”).

The submitDate field is set to the same value on both the master and detail records before
committing.

The log shows that the surrogate keys for both tables are generated from sequences.

So why is Cayenne telling me that “SUBMITDATE” is a missing master key? Does anyone have
any advice?

I tried changing the join to be just the master table primary key, but that didn't change
the exception below.

Joe

--- transaction started.
SELECT PAYLOAD_SEQ.nextval FROM DUAL
SELECT PAYLOADERRDETAIL_SEQ.nextval FROM DUAL
INSERT INTO Payload (BATCHID, COMMANDNAME, COMMODITYTYPE, COMPRESSEDFLAG, CREATIONDATE, DATAPAYLOAD,
FLATFILEFLAG, HOST, LINENAME, PAYLOADID, PROJECTCODE, REPROCESSID, SERIALNUMBER, SITE, STATUS,
SUBMITDATE, UUID) VALUES (?, ?, ?, ?, ?, EMPTY_BLOB(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
[bind: 1:'JABL test data', 2:'SendModuleData', 3:'2', 4:NULL, 5:'2011-10-12 15:43:39.171',
6:'true', 7:'12.345.67.890', 8:NULL, 9:6, 10:'N20', 11:'2b99adcf-8244-40f3-b42a-669384...',
12:'SAAG4300DCMNxx', 13:'FXGL', 14:'ERROR', 15:'2011-07-01 14:05:32.0', 16:'9333fc51-3b08-4d06-8f8d-11e137...']
=== updated 1 row.
SELECT DATAPAYLOAD FROM Payload WHERE PAYLOADID = ? FOR UPDATE [bind: 1:6]
[write LOB: 1:< 3C,3F,78,6D,6C,20,76,65,72,73,69,6F,6E,3D,22,31,2E,30,22,20,65,6E,63,6F,64,69,6E,67,3D,22...>]
INSERT INTO PayloadErrDetail (CORRECTEDVALUE, ERRORCODE, FIELDNAME, FIELDVALUE, PAYLOADERRDETAILID,
PAYLOADID, SUBMITDATE) VALUES (?, ?, ?, ?, ?, ?, ?)
*** error.
org.apache.cayenne.CayenneRuntimeException: [v.3.1M3 Sep 12 2011 19:59:45] Can't extract a
master key. Missing key (SUBMITDATE), master ID (<ObjectId:Payload, TEMP:0000004E2A21AEB9>)
	at org.apache.cayenne.access.DataDomainSyncBucket$PropagatedValueFactory.create(DataDomainSyncBucket.java:311)
~[cayenne-server-3.1M3.jar:na]


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message