Hi Gunnar,
First thing I would try is to add db.makePersistent(o1) to your code.
This affects the order of generated SQL statements and might solve
your problem.
hth
Gerhard
On Wed, 29 Oct 2003 18:29:31 +0100, Gunnar Hilling
<[EMAIL PROTECTED]> wrote:
>Hello,
>I got a problem with the following code snippet:
>
> tx.begin();
>
> System.out.println("creating "+3*NUM+" records");
> t0=System.currentTimeMillis();
> for(int i=0; i<NUM; i++){
> customer=new Customer("no", "one", "here", ""+System.currentTimeMillis(),
> "eternity", 2, new Date());
> db.makePersistent(customer);
> Zertifikatschein z1=new Zertifikatschein("Z1");
> Zertifikat zz=new Zertifikat();
> db.makePersistent(zz);
> Option o1=new Option();
> zz.addOption(o1);
> z1.addOption(o1);
> customer.addSchein(z1);
> customer.addSchein(new Zertifikatschein("Z2 "));
> System.out.print(".");
> }
>t1=System.currentTimeMillis();
>System.out.println("\n" + (t1-t0) + " msec");
>tx.commit();
>
>(Relations:
>customer <-> n Zertifikatschein <-> n Option m <-> Zertifikat)
>
>When committing, I get the following error:
>
>"ERROR: option_fk_2 referential integrity violation -
> key referenced from option not found in zertifikat"
>
>OK, this is the relation from "Option" to "Zertifikat"
>(bidirectional). If i remove the foreign key constraint
>(navigability) from "Option" all works out fine
>AND: the foreign keys are all there in the "Option" table ...
>
>What have I done (wrong...)?
>
>Best Regards,
>
>-Gunnar
>
>PS: Project Schema follows
>
><?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
><!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd">
><!-- Generated by the xdoclet-ojb module -->
>
><database name="lotto">
>
> <table name="customer">
> <column name="key"
> javaName="key"
> type="INTEGER"
> primaryKey="true"
> required="true"
> autoIncrement="true"
> />
> <column name="vorname"
> javaName="vorname"
> type="VARCHAR"
> size="24"
> />
> <column name="nachname"
> javaName="nachname"
> type="VARCHAR"
> size="64"
> />
> <column name="anrede"
> javaName="anrede"
> type="VARCHAR"
> size="24"
> />
> <column name="strasse"
> javaName="strasse"
> type="VARCHAR"
> size="24"
> />
> <column name="plz"
> javaName="plz"
> type="INTEGER"
> />
> <column name="wohnort"
> javaName="wohnort"
> type="VARCHAR"
> size="24"
> />
> <column name="geburtsdatum"
> javaName="geburtsdatum"
> type="TIMESTAMP"
> />
> <column name="benutzername"
> javaName="benutzername"
> type="VARCHAR"
> size="24"
> />
> <column name="kundennummerttcall"
> javaName="kundennummerttcall"
> type="VARCHAR"
> size="24"
> />
> <column name="email"
> javaName="email"
> type="VARCHAR"
> size="24"
> />
> <column name="status"
> javaName="status"
> type="VARCHAR"
> size="24"
> />
> </table>
>
> <table name="zertifikat">
> <column name="key"
> javaName="key"
> type="INTEGER"
> primaryKey="true"
> required="true"
> autoIncrement="true"
> />
> </table>
>
> <table name="reservierung">
> <column name="id"
> javaName="id"
> type="INTEGER"
> primaryKey="true"
> required="true"
> autoIncrement="true"
> />
> <column name="startdate"
> javaName="startdate"
> type="TIMESTAMP"
> />
> <column name="enddate"
> javaName="enddate"
> type="TIMESTAMP"
> />
> <column name="optionen"
> javaName="optionen"
> type="VARCHAR"
> size="511"
> />
> <column name="tippId"
> javaName="tippId"
> type="INTEGER"
> />
> <column name="zertifikatId"
> javaName="zertifikatId"
> type="INTEGER"
> />
> <foreign-key foreignTable="tipp">
> <reference local="tippId" foreign="id"/>
> </foreign-key>
> <foreign-key foreignTable="zertifikat">
> <reference local="zertifikatId" foreign="key"/>
> </foreign-key>
> </table>
>
> <table name="tipp">
> <column name="id"
> javaName="id"
> type="INTEGER"
> primaryKey="true"
> required="true"
> />
> </table>
>
> <table name="product">
> <column name="key"
> javaName="key"
> type="INTEGER"
> primaryKey="true"
> required="true"
> autoIncrement="true"
> />
> <column name="startWoche"
> javaName="startWoche"
> type="TIMESTAMP"
> />
> <column name="zertifikatId"
> javaName="zertifikatId"
> type="INTEGER"
> />
> <foreign-key foreignTable="zertifikat">
> <reference local="zertifikatId" foreign="key"/>
> </foreign-key>
> </table>
>
> <table name="option">
> <column name="key"
> javaName="key"
> type="INTEGER"
> primaryKey="true"
> required="true"
> autoIncrement="true"
> />
> <column name="zertifikatScheinId"
> javaName="zertifikatScheinId"
> type="INTEGER"
> />
> <column name="zertifikatId"
> javaName="zertifikatId"
> type="INTEGER"
> />
> <foreign-key foreignTable="zertifikatschein">
> <reference local="zertifikatScheinId" foreign="key"/>
> </foreign-key>
> <foreign-key foreignTable="zertifikat">
> <reference local="zertifikatId" foreign="key"/>
> </foreign-key>
> </table>
>
> <table name="zertifikatschein">
> <column name="key"
> javaName="key"
> type="INTEGER"
> primaryKey="true"
> required="true"
> autoIncrement="true"
> />
> <column name="psdata"
> javaName="psdata"
> type="VARCHAR"
> size="2048"
> />
> <column name="created"
> javaName="created"
> type="TIMESTAMP"
> />
> <column name="customerId"
> javaName="customerId"
> type="INTEGER"
> />
> <column name="printed"
> javaName="printed"
> type="TIMESTAMP"
> />
> <foreign-key foreignTable="customer">
> <reference local="customerId" foreign="key"/>
> </foreign-key>
> </table>
>
></database>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]