JPA 自關聯 PO映射
數據庫設計:
id關聯Parent_id.
實體類設計:
*CascadeType的各種屬性決定級聯查詢、更新、刪除的方式 *
@ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER)
@JoinColumn(name = "parent_id", referencedColumnName = "id")
private Department parentDepartment;
@OneToMany(cascade = {CascadeType.REMOVE, CascadeType.REFRESH}, fetch = FetchType.EAGER, mappedBy = "parentDepartment")
private List<Department> childDepartment;
邏輯層刪除方法:
Optional<Department> optionalDepartment = departmentDao.findById(departmentVO.getId());
if (optionalDepartment.isPresent()) {
Department department = optionalDepartment.get();//要先查詢實體並封裝,否則刪除報錯
departmentDao.delete(department);
}