On 1/5/07, Philip Mark Donaghy <[EMAIL PROTECTED]> wrote:
I get this error often and I would like to report my findings. This
happens when a data element contains a reference to a foreign key not
present in the document.

This is because by default, the ensureForeignKeyOrder parameter for
the writeDataToDatabase subtask is set to true. This will cause
DdlUtils to defer the insertion of rows until all rows that this row
references, are already written to the database.
If you update DdlUtils and set the new verbosity flag to debug, then
DdlUtils will write out which rows are held back and why.

Aside from this I experienced a problem where I have a table with many
foreign keys none of which are required. When I dump the data using
ddlutils I get an element that looks like this.

<DOCUMENTS ID="1998858" LABEL="Google Earth image of site.jpg"
FILE_NAME="Google Earth image of site.jpg" CUSTOMER_PROPOSAL_FK="0"
EQUIPMENT_FK="0" CIRCUIT_PROVIDER_FK="0" CUSTOMER_FK="2031623"
LOCATION_FK="0" CIRCUIT_FK="0"/>

I havn't investigated too much but those foreign keys with a value of
"0" are actually null and should not appear.

Could you post more info (which db, the relevant schema, etc.) ?
DdlUtils in general does not modify the data so this might be
something that the JDBC driver returns.

Tom

Reply via email to