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
}
參考:
沒有留言:
張貼留言