Hallo Ertan,
ich würde es so versuchen:
Code:
<hibernate-mapping>
<class name="Bestellung" table="bestellung">
<id name="id" column="bestellungID" type="int">
<generator class="native"/>
</id>
<property name="bestelldatum" column="betelldatum" type="java.util.Date"/>
<set name="positionen" inverse="true" cascade="save-update">
<key column="bestellID"/>
<one-to-many class="Position"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="Position" table="position">
<id name="id" column="positionID" type="int">
<generator class="native"/>
</id>
<property name="bezeichnung" column="bezeichnung" type="string"/>
<property name="menge" column="menge" type="integer"/>
<property name="preis" column="preis" type="float" />
<property name="positionpreis" column="positionpreis" type="float"/>
<many-to-one name="bestellung" column="bestellID" class="Bestellung" cascade="save-update" not-null="true"/>
<set name="extras" inverse="true" cascade="save-update">
<key column="positionID"/>
<one-to-many class="Extra"/>
</set>
<set name="extrasAusschuss" inverse="true" cascade="save-update">
<key column="positionID"/>
<one-to-many class="Extra"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="Extra" table="extra">
<id name="id" column="extraID" type="int">
<generator class="native"/>
</id>
<property name="name" column="name" type="string"/>
<property name="menge" column="menge" type="integer"/>
<property name="preis" column="preis" type="float" />
<many-to-one name="position" column="positionID" class="Position" cascade="save-update" not-null="true"/>
</class>
</hibernate-mapping>
Wie das mit den Extras und ExtrasAusschuss in Position funktioniert habe ich noch nicht ausprobiert. Du brauchst dann zwei FKs von
Extra zu
Position.
Bei den Settern solltest du darauf achten, das du eventuelle bestehende Verbindungen vorher löst.
Ich hoffe das hilft weiter.
Torsten