在 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
,下面的代码是否也会保存?Employees
Employee
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
)。