13

次のエンティティがあるとします。

    @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 内で行う必要がありますか? それとも、切り離されたエンティティを持つ単純なコントローラー メソッドでそれを行うだけで十分ですか?

4

2 に答える 2