Wenn ich einen Datensatz aus der übergeordneten Tabelle lösche, möchte ich, dass die entsprechenden Datensätze in der untergeordneten Tabelle gelöscht werden. Wie kann ich Hibernate aus der Child-Tabelle löschen, anstatt zu versuchen, mit einer Null zu aktualisieren?
Ich verwende Hibernate 3, kann jedoch derzeit keine Anmerkungen verwenden. Ich habe unten Kopien von HBM, DAO usw. beigefügt. - Vielen Dank im Voraus
Beim Versuch, Daten aus Tabellen in der Eltern / Kind-Beziehung zu löschen, erhalte ich den folgenden Fehler:
%Vor%Meine Tabellen sind:
Parent :
%Vor%Kind:
%Vor%HBM XML
%Vor%DAO
%Vor%Ich habe diesen Fehler gefunden alle die Zeit.
Setzen Sie einfach eine inverse="true" auf die Beziehung und Ihr Problem wird verschwinden!
%Vor%Im Grunde sagt die Umkehrung aus, dass das Kind ohne ein Elternteil nicht existieren kann, was dazu führt, dass der Hibernate das Kind löscht.
Nachdem Sie das gesagt haben, müssen Sie auch das Objekt "charityTransfer" aus der Sammlung des übergeordneten Elements entfernen.
(Hinweis: Dies wurde von zwei Benutzern als falsche Antwort ausgelöst).
Hibernate-Dokumente sagen, dass Sie die Schlüsselspalte einfach als not-null="true"
markieren können:
Aus Hibernate doc für Sammlungen :
Wenn die Fremdschlüsselspalte einer Assoziation deklariert ist NOT NULL, Sie müssen die Zuordnung not-null="true" deklarieren oder a verwenden bidirektionale Zuordnung zum markierten Mapping der Sammlung inverse="wahr". Weitere Informationen zu bidirektionalen Verknüpfungen finden Sie später In diesem Kapitel finden Sie weitere Informationen.
Ich denke auch, dass es einen Tippfehler in Ihrem Kaskadenstil gibt ( all-delete-orphan
sollte all,delete-orphan
sein).
Tags und Links java hibernate mapping one-to-many