次のエンティティがあるとします。
@Entity
public class Department {
@OneToMany(mappedBy="department")
private List<Employee> employees;
}
@Entity
public class Employee {
@ManyToOne
private Department department
}
次のように、関係の両側を維持する必要があることは、アップデートで理解できます。
Employee emp = new Employee();
Department dep = new Department();
emp.setDepartment(dep);
dep.getEmployees().add(emp);
今まではすべて順調です。問題は、次のように両側でマージを適用する必要があり、カスケードを使用した 2 番目のマージを回避する必要があるかどうかです。
entityManager.merge(emp);
entityManager.merge(dep);
それとも、所有側をマージするだけで十分ですか? また、これらのマージはトランザクションまたは EJB 内で行う必要がありますか? それとも、切り離されたエンティティを持つ単純なコントローラー メソッドでそれを行うだけで十分ですか?