hi,
what have i done wrong?
i created a mapping with many many-to-many relations.
if i want to delete an object with many-to-many-relation i get the
following exception:
java.lang.NullPointerException
at org.exolab.castor.persist.ClassMolder.markDelete(ClassMolder.java:2400)
at org.exolab.castor.persist.LockEngine.markDelete(LockEngine.java:548)
at
org.exolab.castor.persist.TransactionContext.delete(TransactionContext.java
:895)
at org.exolab.castor.jdo.engine.DatabaseImpl.remove(DatabaseImpl.java:379)
at
org.exolab.castor.jdo.engine.DatabaseImpl.deletePersistent(DatabaseImpl.jav
a:390)
at de.terminator.persistent.db.DbService.delete(DbService.java:208)
at de.terminator.persistent.test.Test.test(Test.java:191)
at de.terminator.persistent.test.Test.main(Test.java:52)
thank you for helping me.
jan
my mapping.xml:
<!DOCTYPE databases PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.exolab.org/mapping.dtd">
<mapping>
<class name="de.terminator.lg.LgTerminvorschlag"
identity="terminid" key-generator="MAX">
<map-to table="termin" xml="terminvorschlag" />
<field name="terminid" type="java.lang.Integer" >
<sql name="termin_id" type="integer"/>
<xml name="termin_id" node="element"/>
</field>
<field name="besitzer" type="de.terminator.lg.LgPerson">
<sql name="mitglied_id" />
<xml name="besitzer" node="element" />
</field>
<field name="ort" type="string" >
<sql name="ort" type="char" dirty="check" />
<xml name="ort" node="element"/>
</field>
<field name="thema" type="string">
<sql name="thema" type="char" dirty="check" />
<xml name="thema" node="element"/>
</field>
<field name="zustand" type="integer" >
<sql name="zustand" type="integer"/>
<xml name="zustand" node="element"/>
</field>
<field name="zeitpunkt" type="date">
<sql name="zeitpunkt" type="date"/>
<xml name="zeitpunkt" node="element" />
</field>
<field name="laenge" type="integer" >
<sql name="laenge" type="integer"/>
<xml name="laenge" node="element"/>
</field>
<field name="mitglieder" type="de.terminator.lg.LgMitglied" lazy="true"
required="false"
collection="vector">
<sql name="mitglied_id"
many-table="terminvorschlag_mitglied" many-key="termin_id" />
<xml name="mitglied_id" node="element" />
</field>
<field name="termine" type="de.terminator.lg.LgTermin" lazy="true"
required="false"
collection="vector">
<sql many-key="to_parent_termin" />
<xml name="termine" node="element" />
</field>
</class>
<class name="de.terminator.lg.LgTermin"
identity="terminid" key-generator="MAX">
<map-to table="termin" xml="termin" />
<field name="terminid" type="java.lang.Integer" >
<sql name="termin_id" type="integer"/>
<xml node="attribute"/>
</field>
<field name="besitzer" type="de.terminator.lg.LgPerson">
<sql name="mitglied_id" />
<xml name="besitzer" node="element" />
</field>
<field name="zeitpunkt" type="date">
<sql name="zeitpunkt" type="date"/>
<xml node="text" />
</field>
<field name="laenge" type="integer" >
<sql name="laenge" type="integer"/>
<xml node="attribute"/>
</field>
<field name="parenttermin" type="de.terminator.lg.LgTerminvorschlag"
required="true">
<sql name="to_parent_termin"/>
<xml name="parenttermin" node="element" />
</field>
</class>
<class name="de.terminator.lg.LgMitglied"
identity="mitgliedid" key-generator="MAX">
<map-to table="mitglied" xml="mitglied" />
<field name="mitgliedid" type="integer" >
<sql name="mitglied_id" type="integer"/>
<xml node="attribute"/>
</field>
<field name="name" type="string" >
<sql name="name" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="nickname" type="string" >
<sql name="nickname" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="publickey" type="string" >
<sql name="publickey" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="secretkey" type="string" >
<sql name="secretkey" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true"
required="false"
collection="vector">
<sql name="gruppe_id"
many-table="mitglied_gruppe" many-key="mitglied_id" />
<xml name="mitglied_id" node="element" />
</field>
<field name="terminvorschlaege"
type="de.terminator.lg.LgTerminvorschlag" lazy="true" required="false"
collection="vector">
<sql name="termin_id"
many-table="terminvorschlag_mitglied" many-key="mitglied_id" />
<xml name="termin_id" node="element" />
</field>
</class>
<class name="de.terminator.lg.LgRaum"
identity="mitgliedid" key-generator="MAX">
<map-to table="mitglied" xml="mitglied" />
<field name="mitgliedid" type="integer" >
<sql name="mitglied_id" type="integer"/>
<xml node="attribute"/>
</field>
<field name="name" type="string" >
<sql name="name" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="nickname" type="string" >
<sql name="nickname" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="fassungsvermoegen" type="integer" >
<sql name="raum_fassungsvermoegen" type="integer" dirty="check" />
<xml node="attribute"/>
</field>
<field name="raumnummer" type="string" >
<sql name="raum_nr" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="verfuegbar" type="integer" >
<sql name="resource_verfuegbar" type="integer" dirty="check" />
<xml node="attribute"/>
</field>
<field name="beschreibung" type="string" >
<sql name="resource_beschreibung" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true"
required="false"
collection="vector">
<sql name="gruppe_id"
many-table="mitglied_gruppe" many-key="mitglied_id" />
<xml name="mitglied_id" node="element" />
</field>
</class>
<class name="de.terminator.lg.LgGeraet"
identity="mitgliedid" key-generator="MAX">
<map-to table="mitglied" xml="mitglied" />
<field name="mitgliedid" type="integer" >
<sql name="mitglied_id" type="integer"/>
<xml node="attribute"/>
</field>
<field name="name" type="string" >
<sql name="name" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="nickname" type="string" >
<sql name="nickname" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="verfuegbar" type="integer" >
<sql name="resource_verfuegbar" type="integer" dirty="check" />
<xml node="attribute"/>
</field>
<field name="beschreibung" type="string" >
<sql name="resource_beschreibung" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true"
required="false"
collection="vector">
<sql name="gruppe_id"
many-table="mitglied_gruppe" many-key="mitglied_id" />
<xml name="mitglied_id" node="element" />
</field>
</class>
<class name="de.terminator.lg.LgPerson"
identity="mitgliedid" key-generator="MAX">
<map-to table="mitglied" xml="mitglied" />
<field name="mitgliedid" type="integer" >
<sql name="mitglied_id" type="integer"/>
<xml node="attribute"/>
</field>
<field name="name" type="string" >
<sql name="name" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="nickname" type="string" >
<sql name="nickname" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="gruppen" type="de.terminator.lg.LgGruppe" lazy="true"
required="false"
collection="vector">
<sql name="gruppe_id"
many-table="mitglied_gruppe" many-key="mitglied_id" />
<xml name="mitglied_id" node="element" />
</field>
<field name="rolle" type="integer" >
<sql name="person_rolle" type="integer" dirty="check" />
<xml node="attribute"/>
</field>
<field name="adresse" type="string" >
<sql name="person_adresse" type="char" dirty="check" />
<xml node="text"/>
</field>
</class>
<class name="de.terminator.lg.LgGruppe"
identity="gruppeid" key-generator="MAX">
<map-to table="gruppe" xml="gruppe" />
<field name="gruppeid" type="java.lang.Integer" >
<sql name="gruppe_id" type="integer"/>
<xml node="attribute"/>
</field>
<field name="name" type="string" >
<sql name="name" type="char" dirty="check" />
<xml node="text"/>
</field>
<field name="mitglieder" type="de.terminator.lg.LgPerson"
required="false"
collection="vector">
<sql name="mitglied_id"
many-table="mitglied_gruppe" many-key="gruppe_id" />
<xml name="mitglied_id" node="element" />
</field>
</class>
</mapping>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev