Hallo, ich arbeite erst seit kurzem mit Hibernate und hänge gerade seit Stunden an einem Problem fest.
Ich habe eine Tabelle mit Knoten und eine mit Relationen zwischen zwei Knoten (childid, parentid, entryposition). Ein Knoten kann dabei auch mehrere Parents haben.
Was ich bräuchte ist eine Klasse mit den Methoden getChildren() und getParents() und ich hätte gerne, dass Hibernate die Entryposition selbst verwaltet. Folgendes Mapping habe ich versucht:
Code:
<list name="children" table="RELATION" lazy="true" cascade="persist,merge,save-update" batch-size="20">
<key column="PARENTID" not-null="true" update="false"></key>
<list-index base="1">
<column name="ENTRYPOSITION" precision="22" scale="0" />
</list-index>
<many-to-many column="CHILDID" class="KNOTEN"></many-to-many>
</list>
<set name="parents" inverse="true" lazy="true" table="RELATION" fetch="select" cascade="persist,merge,save-update" >
<key update="false" >
<column name="CHILDID" precision="22" scale="0" not-null="true" />
</key>
<many-to-many column="PARENTID" class="KNOTEN" />
</set>
Das funktioniert zwar wenn ich neue Children einfüge, die Entryposition wird hochgezählt, allerdings bekomme ich eine Fehlermeldung sobald ich ein Child löschen möchte.
Could not execute JDBC batch update...
ORA-00001: Unique Constraint (...RELATION_PK) verletzt
Kann mir da jemand weiterhelfen?
Ich finde leider überall nur Beispiele wo Child und Parent verschiedene Klassen sind... und ich frage mich ob das überhaupt Sinn macht das so zu mappen!?