Hi,
ich habe eine Frage zu den JPA CascadeTypes:
Ich habe zwei Entitäten, A und B. A hat eine Liste von Bs, diese ist mit @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "b") annotiert. Wenn ich jetzt eine A Entität speichere, wird B mitgespeichert (sofern B nicht vorher schon explizit gespeichert wurde). Das ist wunderbar. Wenn ich jetzt die Annotation durch @OneToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH, CascadeType.DETACH }, mappedBy = "b") ersetze, werden die B-Entities nicht mehr mitgespeichert. Sprich, es scheint einen Unterschied zwischen dem CascacdeType.ALL und der Liste aller einzelnen CascadeTypes zu geben. Warum? Lt Dokumentation sollte dies nicht so sein. Kann mir das irgendwer erklären? Hat irgendwer ähnliche Erfahrungen gemacht?
Falls es von Interesse ist, im Hintergrund läuft eine Oracle 11 Datenbank und der Source wird über JUnit ausgeführt.
Grüße und schonmal schönes Wochenende sowie vielen Dank für die Hilfe,
Andreas
ich habe eine Frage zu den JPA CascadeTypes:
Ich habe zwei Entitäten, A und B. A hat eine Liste von Bs, diese ist mit @OneToMany(cascade = { CascadeType.ALL }, mappedBy = "b") annotiert. Wenn ich jetzt eine A Entität speichere, wird B mitgespeichert (sofern B nicht vorher schon explizit gespeichert wurde). Das ist wunderbar. Wenn ich jetzt die Annotation durch @OneToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH, CascadeType.DETACH }, mappedBy = "b") ersetze, werden die B-Entities nicht mehr mitgespeichert. Sprich, es scheint einen Unterschied zwischen dem CascacdeType.ALL und der Liste aller einzelnen CascadeTypes zu geben. Warum? Lt Dokumentation sollte dies nicht so sein. Kann mir das irgendwer erklären? Hat irgendwer ähnliche Erfahrungen gemacht?
Falls es von Interesse ist, im Hintergrund läuft eine Oracle 11 Datenbank und der Source wird über JUnit ausgeführt.
Grüße und schonmal schönes Wochenende sowie vielen Dank für die Hilfe,
Andreas