Ich habe zwei Klassen, sagen Gruppe und Person mit einer ManyToMany-Relation, die in einer JoinTable zugeordnet ist.
Wenn ich eine Person lösche, die eine Beziehung zu einer Gruppe hat, möchte ich den Eintrag aus der Join-Tabelle löschen (nicht die Gruppe selbst löschen!).
Wie muss ich die Kaskaden-Annotationen definieren? Ich habe keine wirklich hilfreiche Dokumentation gefunden, aber mehrere ungelöste Board-Diskussionen ...
%Vor% Cascade wird nicht die verbleibenden Verweise auf die gelöschten Person
bereinigen, die auf dem Objekt Group
im Speicher verbleiben. Sie müssen das manuell tun. Es scheint, als würde Kaskade dies tun, aber leider funktioniert das nicht so.
Aufgrund der Informationen in Ihrer Frage glaube ich nicht, dass Sie Kaskadenoptionen für Ihre Entitäten Person
oder Group
benötigen. Es klingt nicht so, als ob sie eine Eltern-Kind-Beziehung teilen, in der die Existenz der einen von der anderen abhängt. Das ist die Art von Beziehung, in der ich einige Kaskadenoptionen erwarten würde.
Ich glaube, was Sie wollen, ist:
%Vor%Um die DB-Beziehung zu entfernen, entfernen Sie die Zuordnung aus jeder Gruppe. Entfernen Sie die Person aus der Group.persons-Auflistung, und entfernen Sie die Gruppe aus der Person.group-Auflistung. Behalten Sie dann Ihr Personenobjekt bei.