Ich versuche, eine Anwendung zu erstellen, die ein Objektmodell mit einer Datenbank synchron hält, indem sie alle Änderungen beobachtet und die fraglichen Objekte dann sofort persistiert. Viele der Objekte im Modell haben Kinder in großen Listen oder Bäumen.
Wenn ich ein Objekt aus der Datenbank lade, verlasse ich mich auf eine einseitige kaskadierende Beziehung, um auch alle seine Kinder abzurufen und sie in die Anwendung einzubeziehen.
Es ist jedoch möglich, ein Feld im übergeordneten Objekt zu ändern, das Persistenz erfordert, und ich kann feststellen, dass keines der Kinder davon betroffen ist. Ich möchte also das übergeordnete Objekt persistieren, ohne die Datenbank mit allen kaskadierten untergeordneten Persistenzen zu belasten.
z.B.
@Entity
public class Parent {
@OneToMany(cascade=CascadeType.ALL)
public List children;
}
Wie kann ich die Kaskadenoption außer Kraft setzen, wenn ich ein übergeordnetes Objekt aufrechterhalte? Oder sollte ich es einfach auf REFRESH setzen und sicherstellen, dass ich niemals eine kaskadierende Persistierung benötige?