tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
1208
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    TMDolphin TMDolphin ist offline Mitglied
    Registriert seit
    Oct 2004
    Beiträge
    18
    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
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Dafür gibt es die Cascade Annotationen. Einfach mal danach googlen, die definieren auf welche referenzen wann wie kaskadiert werden soll.

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  3. #3
    TMDolphin TMDolphin ist offline Mitglied
    Registriert seit
    Oct 2004
    Beiträge
    18
    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?
     

  4. #4
    Avatar von tim staeglich
    tim staeglich tim staeglich ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    84
    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!

  5. #5
    TMDolphin TMDolphin ist offline Mitglied
    Registriert seit
    Oct 2004
    Beiträge
    18
    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
     

  6. #6
    Avatar von tim staeglich
    tim staeglich tim staeglich ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    84
    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ß

    Tim
     
    XING -- Hat Dir mein Beitrag geholfen? Dann würde ich mich über eine positive Bewertung freuen!

  7. #7
    TMDolphin TMDolphin ist offline Mitglied
    Registriert seit
    Oct 2004
    Beiträge
    18
    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

  1. 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: 2
    Letzter Beitrag: 05.12.08, 11:22
  2. Hibernate Persistence.xml - Sinnvoller Wert für hibernate.hbm2ddl.auto
    Von Herr_M im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 08.10.08, 08:21
  3. Datenbank löschen mit Hibernate
    Von HerrRitschwumm im Forum Java
    Antworten: 3
    Letzter Beitrag: 17.09.07, 22:14
  4. Antworten: 2
    Letzter Beitrag: 13.06.07, 09:24
  5. Antworten: 1
    Letzter Beitrag: 25.01.06, 17:59

Stichworte