網頁

2019/5/18

Hibernate JPA @OneToMany cascade設為CascadeType.REFRESH的作用

Hibernate JPA @OneToManycascade屬性值設定為CascadeType.REFRESH的作用如下。

CascadeType.REFRESH的作用為:「當實體物件refresh時,其關聯的實體物件也都會refresh。」

Refresh(刷新/更新/重新整理)的意思是,將資料庫的狀態更新到實體物件上,若實體物件的狀態之前有任何改變,仍會被資料庫的狀態覆寫(overwrite)。

例如一個部門Department實體的物件dep物件中有多個員工Employee,若將參照多個員工的成員變數employeeList@OneToManycascade屬性值設為CascadeType.REFRESH,則當程式執行EntityManager.refresh(dep)dep進行refresh時,其所屬Employee實體,也就是employeeList中的Employee物件也都會進行refresh。

簡單說就是當Department實體物件被refresh,關聯的Employee實體物件也都會被refresh。

@Entity
@Table(name="Department")
public class Department {

    @Id
    private String id;
    @Column
    private String name;
    @Column
    private String address;
    
    @OneToMany(cascade=CascadeType.REFRESH)
    private List<Employee> employeeList;

 // setters and getters
}

參考:

沒有留言:

張貼留言