Hibernate JPA @OneToMany的cascade屬性值設定為CascadeType.REFRESH的作用如下。
CascadeType.REFRESH的作用為:「當實體物件refresh時,其關聯的實體物件也都會refresh。」
Refresh(刷新/更新/重新整理)的意思是,將資料庫的狀態更新到實體物件上,若實體物件的狀態之前有任何改變,仍會被資料庫的狀態覆寫(overwrite)。
例如一個部門Department實體的物件dep物件中有多個員工Employee,若將參照多個員工的成員變數employeeList的@OneToMany的cascade屬性值設為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
}
參考:
沒有留言:
張貼留言