问题是,我是否应按以下所述在双方上进行合并,并且避免使用级联进行第二次合并?
您可以使用级联注释元素将操作的效果传播到关联的实体。级联功能最常用于父子关系中。
如果已使用元素值或注释对这些关系进行了注释,则该
merge操作将级联到
Department该关系所引用的实体。
cascade``cascade=MERGE``cascade=ALL
受管实体之间的双向关系将根据
(Employee)该关系拥有方所拥有的引用来保留。当它们更改时,开发人员有责任使在内存中拥有的引用和在内存中
(Employee)相反的引用
(Department)彼此保持一致。因此,通过以下一系列语句,该关系将通过单个语句同步到数据库
merge:
Employee emp = new Employee();Department dep = new Department();emp.setDepartment(dep);dep.getEmployees().add(emp);...entityManager.merge(dep);
这些更改将在事务提交时传播到数据库。通过使用EntityManager#flush方法,在事务处于活动状态时,实体的内存状态也可以在其他时间同步到数据库。



