Hibernate und Daten nur als gelöscht markieren

splitshade

Mitglied
Hi,

gibt es einen Pattern für das Vorgehen mit Hibernate, wenn ich meine Daten nicht physikalisch aus der Datenbank löschen möchte, sondern nur als gelöscht markieren?
Das "Löschen" an sich ist ja einfach, funktioniert auch wunderbar, wie aber bringe ich Hibernate bei, die "gelöschten" Daten nicht wieder zu laden?
Ich finde dazu leider kaum was.

Danke euch!

Martin
 
Hi,

ich verstehe Deine Frage nicht ganz. Wenn Du die Daten per Hibernate löscht (ich nehme mal an, sowas wie session.delete(...) ), in wie fern lädt Hibernate sie dann wieder? Hast Du nach dem Löschen auch commited?
 
Hi,

ok, ich habs vielleicht ein wenig blöd formuliert, die Daten werden nicht gelöscht, es gibt in jeder Klasse ein Flag "deleted", dass ein Object als gelöscht markiert.
Der Löschvorgang sieht vereinfacht so aus:

Code:
... deleteSomeObject(Object o)
{
 o.setDeleted(true);
 session.saveOrUpdate(o);
}

Das Objekt steht also in der Datenbank und hat ein deleted=true.
Ich möchte jetzt beim laden, dass Hibernate nicht alle Referenzen lädt, sondern eben nur die Referenzen mit deleted=false.
Da dies ein oft angewendeter UseCase ist, bin ich mir sicher, dass es hierfür eine Standardvorgehensweise gibt, wie man sowas löst, leider krieg ich das nicht hin.

Viele Grüße

Martin
 
Was Du suchst sind 'Dynamic Data Filters', welche im Kapitel 12.3.1 von 'Java Pesistence with Hibernate' beschrieben sind.

Leider hab ich die selber noch nicht benutzt, aber vielleicht hilft Dir das ja schon weiter.

Hinweis zur Suche: die Filter werden im Mapping per '<filter-def/> tag beschrieben.

Gruß
 
Hi,

danke für den Tipp, das schau ich mir morgen gleich mal an,
momentan habe ich das so gelöst, dass ich die Logik einfach in die Setter der einzelnen Domain-Objekte gepackt hab, das funktioniert auch, ist aber natürlich nicht besonders schön, wenn HIbernate das unterstützt wäre das schon ideal.

Gruß

Martin
 
Guten morgen,

nochmals vielen Dank für den Tipp! das ist wirklich genau das was ich gesucht habe, und zufällig habe ich das Buch auch hier.

Gruß

Martin
 
Freut mich das es geholfen hat. Selbst hab ich ja auch noch nicht verwendet, aber es hat mich interessiert wie es wohl gehen könnte ;) Hab also auch was gelernt.

Gruß
 
Zurück