加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JPA – 更新OneToMany-Relations中的对象

发布时间:2020-12-15 04:11:16 所属栏目:Java 来源:网络整理
导读:好吧,我有点困惑,因为我找不到解决问题的方法(可能是某种停电) 假设我有以下(简化)实体: @Entitypublic class Employee { @Id private long id; @OneToMany(mappedBy="owner") private CollectionPhone phones;}@Entitypublic class Phone { @Id private lo
好吧,我有点困惑,因为我找不到解决问题的方法(可能是某种停电)

假设我有以下(简化)实体:

@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.

解决方法

这个 link就是你问题的答案,你应该自己管理关系,我. ?:

class Phone {
...
   void setEmployee(Employee employee) {
      owner = employee;
      employee.addPhone(phone);
   }
...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读