In meiner Application sollen keine Daten in der Datenbank gelöscht werden, sondern es soll nur ein status-flag auf "DELETED" gesetzt werden.
Beispiel: User, Groups (1 User kann n Gruppen haben)
Es gibt eine Relationstabelle user2group (userId,groupId,status)
Dazu hat User.getGroups() eine where-expression bekommen.
* @hibernate.set table="user2grp" where="status!='DELETED'" lazy="true"
Mit dieser werden dann nur Elemente zurückgeliefert die eben nicht als gelöscht markiert sind. ... das ganze funktioniert auch soweit :-)
Wenn ich jetzt aber eine Gruppe löschen möchte so schreibt Hibernate vor das man auf jeden Fall User.getGroups().remove(g) aufrufen muss.
Dies führt aber leider zur Löschung der entwsprechenden Row aus der Tabelle.
Kann man Hibernate irgendwie mitteilen dies nicht zu tun?
Oder wie bekommt man den Ansatz "löschen über flag" hin?
Thanks
Jens Zastrow
|