Hallo!
Ich hab hier ein Hibernate-Mapping, welches nicht so ganz gut funktioniert.
Der Sachverhalt ist:
Es gibt eine Klasse SimpleUser und eine Klasse MapItemHib.
Jedes Objekt von MapItemHib hat als Attribut ein Objekt von SimpleUser.
Es können aber mehrere MapItemHibs zu einem User gehören.
Sollte also eine many-to-one-Beziehung sein, oder?
Ich habe jetzt folgende mapping-Dateien (Ausschnitte):
MapItemHib.hbm.xml
Code:
<many-to-one name="owner" class="test.SimpleUser"
cascade="save-update" column="OWNER" />
und
SimpleUser.hbm.xml
Code:
<hibernate-mapping>
<class name="test.SimpleUser" table="SIMPLEUSER">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="native" />
</id>
... weitere properties...
</class>
</hibernate-mapping>
Wenn ich jetzt aber einen SimpleUserEintrag erstellen möchte, kommt der Fehler:
Code:
ERROR: Cannot add or update a child row: a foreign key constraint fails (`test`.`simpleuser`, CONSTRAINT `FKC7A4E07D72CFDE7B` FOREIGN KEY (`ID`) REFERENCES `mapitemhib` (`ITEMID`))
Das bedeutet, dass ich den User nicht erstellen kann, weil er nirgendwo in MapItemHib referenziert wird, oder?
Aber das muss er eigentlich auch gar nicht für mich... Es kann auch einfach so ein Benutzer exisiteren ohne Referenz, wie mache ich das?