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]

Reply via email to