我对JPA有一个疑问:
我有一个实体,我刚刚添加了与其他实体的关系,所以当我编辑第一个实体时,必须保留另一个对象并在第一个实体上设置更新它。
以示例
公司是第一个实体,我刚刚添加了经理实体,所以我的公司现在有一个名为“manager”的新字段,与经理表有关系(由于该经理可以管理1到多家公司,因此多对一)。
在我的课程定义中,我有这个:
Company.java:
@JoinColumn(name = "manager", referencedColumnName = "id")
@ManyToOne
private Manager manager;
Manager.java:
@OneToMany(mappedBy = "manager")
private List<Company> companies;
所以我将新经理设置为某个公司,当我通过remotefacade进行编辑时,新管理器已创建,但未在之前的公司中设置。
有些奇怪的是我没有任何地方的cascade.persist注释,但是在编辑时仍然存在。
有人可以帮助我:)?
编辑:
这就是我将经理设置为公司的方式:
action.java
Manager m = new Manager();
... (set all the data)
Company c = companyFacade.find(1); // find by ID
c.setManager(m);
companyFacade.edit(c);
答案 0 :(得分:1)
您能否显示将经理与公司关联的代码?请注意:
答案 1 :(得分:0)
好的家伙感谢阅读并回答这个问题。
这个问题是我在早期开发中的find方法中忘记的“分离”。现在它完美无缺。