Các mô tả CascadeType riêng lẻ có thể hơi khó hiểu, nhưng có một cách dễ dàng để tìm ra nó từ trường hợp chung.
Đối với bất kỳ CascadeType
giá trị nào, điều đó có nghĩa là nếu thao tác X
được gọi trên một cá thể sử dụng EntityManager
giao diện và cá thể đó có tham chiếu đến các cá thể thực thể khác và liên kết đó đã CascadeType.X
được xác định, thì EntityManager
thao tác cũng sẽ được áp dụng cho thực thể được liên kết đó.
Vì vậy, EntityManager.refresh()
được định nghĩa là:
Làm mới trạng thái của cá thể từ cơ sở dữ liệu, ghi đè các thay đổi được thực hiện đối với thực thể, nếu có.
Vì vậy, nếu thực thể A có một tham chiếu đến thực thể B và tham chiếu đó được chú thích bằng @CascadeType.REFRESH
, và EntityManager.refresh(A)
được gọi, thì EntityManager.refresh(B)
nó cũng được gọi ngầm.