在 Hibernate EntitiesCascade中的关联双方都使用是否合适?ManyToOne为了使我的问题更具体,让我们假设某人有以下相关实体:
public class Department
{
public long id;
@OneToMany(mappedBy = "department", cascade=cascadeType.REMOVE)
private Set<Employee> employees;
}
public class Employee{
@GeneratedValue(strategy=GeneratedValue.identity)
public longempid;
@ManyToOne
public Department department;
}
在上述关系中 aDepartment有很多Employees,因此Employees在删除 a 时强制删除 aDepartment是合理的。我对吗?
但是,关系的所有者是Employee. 因此,我的问题是,关于将cascadeType.PERSIST. 我可以根据特殊需要选择两侧中的一个,或者我可以将它放在两侧吗?如果我把它放在一边,考虑到关系的所有者Department,下面的代码是否也会保存?EmployeesEmployee
Employee e1 = new Employee();
Employee e2 = new Employee();
Department d = new Department();
d.getEmployees.add(e1);
d.getEmployees.add(e2);
em.persist(d);
如果我把它cascadeType.PERSIST放在Employee一边,我几乎可以肯定相反的效果。(保存Employee也会保存Department)。