Hallo,
ich bin Hibernateanfänger und arbeite als Praktikantin an einem Projekt mit Hibernate, Spring und JSF. Nun zu meinem Problem.
Es gibt Tests und Kapitel(Section). Ein Kapitel soll in mehreren Tests verfügbar sein.
Ein Test soll mehrere Kapitel haben. Also eine many-to-many-Beziehung
Ich habe es so programmiert:
Klasse Test
Code:
public class Test {
...
private Set sections = new LinkedHashSet();
...
}
(mit Getter und Setter für das Sectionsset)
analog dazu die Sectionklasse (Kapitel).
Die Mappings sehen so aus:
Section.hbm.xml:Code:
<set name="tests" table="test_section" lazy="false" inverse="true" cascade="save-update">
<key column="section_id"/>
<many-to-many column="test_id" class="Test"/>
</set>
Test.hbm.xmlCode:
<set name="sections" table="test_section" lazy="false" cascade="save-update">
<key column="test_id"/>
<many-to-many column="section_id" class="Section"/>
</set>
Somit sollen in einer Zwischentabelle test_section die jeweiligen Id´s gespeichert werden. Das werden sie auch, jedoch wird bei jedem Speichern eines Kapitels die alte Beziehung überschrieben.
Aber warum?
Code:
cascade="save-update"
bedeutet doch, daß entweder neu gespeichert, falls es den Eintrag noch nicht gibt oder der Eintrag überschrieben wird (geupdatet wird).
Vielen Dank für jede Hilfe!