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]