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