Poszczególne opisy CascadeType mogą być nieco mylące, ale jest łatwy sposób, aby to zrozumieć z ogólnego przypadku.
Dla każdego wartości CascadeType
, oznacza to, że jeśli operacja X
nazywa się na przykład za pomocą interfejsu EntityManager
, a przykład ma odniesienia do innych przypadkach jednostki, a to stowarzyszenie CascadeType.X
określone, to operacja EntityManager
będzie również być stosowane do tego powiązanego podmiotu.
Więc EntityManager.refresh()
jest zdefiniowany jako:
Odśwież stan instancji z bazy danych, zastępując zmian podmiotowi, jeżeli takie istnieją.
Więc jeśli podmiot A ma odniesienie do podmiotu B, a odniesienia opatrzone @CascadeType.REFRESH
i EntityManager.refresh(A)
nazywa, następnie EntityManager.refresh(B)
niejawnie jest również tzw.
Wiem, że to stary post, ale przy użyciu przykład A i B powyżej, jeśli instancja B jest obecnie indywidualny, by przyczyną CascadeType.PERSIST B stać się trwałe? Używam implementacji JPA Hibernate. – Andy
Odpowiedziałem na moje własne pytanie. Odpowiedź brzmi: nie. Musisz wywołać save na obiekcie, aby stał się trwały. – Andy