ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
1208
1208
EMPFEHLEN
-
Hi,
Habe wohl ein kleines Denkproblem, weshalb ich alle Ergebnisse meiner Suche nicht verstanden habe/umsetzen konnte.
Es geht darum, dass ich mit .delete(Object...) ein Objekt aus der Datenbank löschen möchte. Wie kann ich nun sicherstellen, das alle Fremdschlüsselverweise auf dieses Objekt auf null gesetzt werden?
gruß Dolphin
-
11.12.08 12:22 #2
Dafür gibt es die Cascade Annotationen. Einfach mal danach googlen, die definieren auf welche referenzen wann wie kaskadiert werden soll.
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
Hallo,
Danke für die Antwort. Ich habe mir Cascading in Zusammenhang mit Hibernate angesehen und auch nochmal in einem Buch nachgeschlagen. Grundsätzlich habe ich jetzt aber das Cascading mehr als Weitergabe von Löschungen verstanden. Wobei die Regeln festlegen, wann es weitergegeben wird.
Ich habe nichts dazu gefunden, ob es auch möglich ist mit Cascading zu bestimmen, das eine Propertie null gesetzt wird, wenn ich das referenzierte Objekt lösche. In den Bsp die ich sah, wurde dies händisch vor der eigentlich Löschung gemacht.
Gibt es dafür einen einfacheren weg als es per Hand null zu setzen?
-
15.12.08 14:15 #4
Hi TM,
verstehe ich das richtig, dass Du gerade kein kaskadiertes Löschen möchtest, sondern
lediglich die Löschung der Referenzen in anderen Objekten löschen willst?
Gruß, Tim.XING -- Hat Dir mein Beitrag geholfen? Dann würde ich mich über eine positive Bewertung freuen!
-
Ganz genau. Wenn ein Objekt gelöscht wird, soll jede Referenz darauf gelöscht werden. Entweder soll es null werden, oder halt bei einer List aus dieser entfernt werden.
thx TMD
-
16.12.08 10:50 #6
Hi TMD,
dann kommt kaskadiertes Löschen nicht in Frage.
Ich bin sicher, dass für Dein beschriebenes Problem ein Pattern existiert.
Anstatt mir eine Lösung jetzt auszudenken würde ich vorschlagen, einmal nach passenden Pattern zu suchen.
Ein Ansatz wäre z.B. Observer, bei denen sich ein Objekt an- und abmelden kann und ähnliches. Da muss man nur auf das Thread handling aufpassen, dieses Patttern ist bekannt für Runtime Exceptions wenn es unsauber oder unvollständig Anwendung findet.
Wenn Du eines gefunden hast poste das bitte mal, würd mich interessieren.
Danke & Gruß
TimXING -- Hat Dir mein Beitrag geholfen? Dann würde ich mich über eine positive Bewertung freuen!
-
Danke für deine Antwort. Das Problem ist auf jeden fall richtig verstanden. Schade dass es keine Möglichkeit mit Hibernate direkt gibt. Ich denke im aktuellen Fall werde ich vorher per Iteration alle Referenzen händisch löschen. Performancetechnich ist das erstmal kein Problem und ich muss nicht mit Observern etc. auseinander setzen.
vielen Dank nochmal TMD
Ähnliche Themen
-
Hibernate: Probleme beim Löschen eines Objektes welches ein Set als Datenelement hat
Von Flo[H] im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 05.12.08, 11:22 -
Hibernate Persistence.xml - Sinnvoller Wert für hibernate.hbm2ddl.auto
Von Herr_M im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 3Letzter Beitrag: 08.10.08, 08:21 -
Datenbank löschen mit Hibernate
Von HerrRitschwumm im Forum JavaAntworten: 3Letzter Beitrag: 17.09.07, 22:14 -
Hibernate: save, update, saveOrUpdate, merge, .... [an alle Hibernate-Profis]
Von DerGrinsemann im Forum JavaAntworten: 2Letzter Beitrag: 13.06.07, 09:24 -
Hibernate (offizielles Eclipse Plugin aus Hibernate Tools) und MySQL
Von webmagier im Forum JavaAntworten: 1Letzter Beitrag: 25.01.06, 17:59





Zitieren
Login





