嗯,我有点困惑,因为我找不到解决问题的方法(可能是某种停电)
假设我有以下(简化)实体:
@Entity
public class Employee {
@Id
private long id;
@OneToMany(mappedBy="owner")
private Collection<Phone> phones;
}
@Entity
public class Phone {
@Id
private long id;
@ManyToOne
private Employee owner;
}
我有一个由JPA管理的手机对象。现在我想用这样的东西改变那个手机对象的员工:
phone.setEmployee(otherEmployee);
我认为JPA会更新相应的Employee也会更新。我错了吗? 我尝试了注释@ManyToOne和@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true),但它不起作用。
我是否必须自己更新Employee对象?不幸的是,我没有在任何教程或其他例子中找到这种情况,所以我希望你能告诉我更多,我很困惑。提前谢谢。
修改以使其更加清晰:
Phone phone = new Phone();
Employee employee = new Employee();
phone.setEmployee(employee);
em.persist(employee);
em.persist(phone);
employee.getPhones(); //the phone object should be included here.
答案 0 :(得分:7)
这个link是你问题的答案,你应该自己管理关系,我。 E:
class Phone {
...
void setEmployee(Employee employee) {
owner = employee;
employee.addPhone(phone);
}
...
}