Hibernate Flag statt Löschen

Dieses Thema Hibernate - Flag statt Löschen im Forum "Application Tier" wurde erstellt von Landei, 31. Aug. 2012.

Thema: Flag statt Löschen Gibt es einen eleganten Weg, bei Abfragen nur Entities zu berücksichtigen, bei denen ein Flag auf ACTIVE oder so...

  1. Gibt es einen eleganten Weg, bei Abfragen nur Entities zu berücksichtigen, bei denen ein Flag auf ACTIVE oder so gesetzt ist (das dürfte einfach sein), und beim Löschen eben nicht gelöscht wird, sondern das Flag des Entities auf INACTIVE gesetzt wird? Ich denke, diese Vorgehensweise dürfte eigentlich nicht sooo unüblich sein, ich konnte aber bisher keine "automatische" Lösung dafür finden.
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Danke, aber soweit ich sehe löst das noch nicht das Löschproblem.
     
  4. Im Prinzip ja, aber einfach ist das imho nicht..

    Kenne das von bestimmten Db Anwendungen, bei denen eben keine Infos verlorengehen dürfen, selbst wenn der user die Entity löscht.

    Es gibt JBoss/Hibernate Envers für Anwendungen, bei denen jede Änderung aufgezeichnet wird, selbst ein delete.
    Die entity wird trotzdem noch gelöscht, aber die Revisionhistory der Entity (in einer eigenen Tabelle umgesetzt), merkt sich eben was alles mit dieser Entity passiert ist.

    Hibernate Envers - Easy Entity Auditing

    Habe selber noch nicht mit Envers gearbeitet, aber mal eine "oberflächliche" Untersuchung gemacht.
     
  5. Envers sieht interessant aus, danke!

    Mit Interceptors bekommt man es sicher hin, aber das wäre für mich eher Plan B...
     
  6. Sym
    Sym
    Mit Envers holst Du Dir allerdings viel ins Haus und musst das erst einmal handhaben können. :) Der Vorteil ist natürlich, dass Du das gelöscht-Flag nicht explizit auswerten musst und natürlich sind DB-Abfragen schneller ohne diese Abfrage.

    Ich persönlich bevorzuge den Weg über Interceptoren.
     
  7. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!