0

我对 JPA 有一个奇怪的问题:

我有一个实体,我刚刚添加了与其他实体的关系,所以当我编辑第一个实体时,另一个对象必须被持久化并设置在第一个实体上更新它。

举例

公司是第一个实体,我刚刚添加了经理实体,所以我的公司现在有一个名为“经理”的新字段,与经理表有关系(多对一,因为该经理可以管理一对多的公司)。

在我的这个场景的类定义中,我有这个:

公司.java:

@JoinColumn(name = "manager", referencedColumnName = "id")
    @ManyToOne
    private Manager manager;

管理器.java:

@OneToMany(mappedBy = "manager")
private List<Company> companies;

因此,我将新经理设置为某家公司,当我通过 remotefacade 进行编辑时,新经理已创建但未在前一家公司中设置。

一些奇怪的是我在任何地方都没有 cascade.persist 注释,而是在编辑时被保留。

有人可以帮助我:) ?

编辑:

这就是我将经理设置为公司的方式:

动作.java

Manager m = new Manager();
... (set all the data)

Company c = companyFacade.find(1); // find by ID

c.setManager(m);

companyFacade.edit(c);
4

2 回答 2

1

您能否显示将经理与公司相关联的代码?请注意:

  • 您还必须将公司与经理关联:例如 manager.addCompany(company)
  • 您确定您的 mappedBy 属性设置正确吗?Company 类上是否有 setAsistente 方法?
于 2013-08-29T00:18:00.010 回答
0

好吧,感谢您阅读并回答这个问题。

问题是我在早期开发的 find 方法中忘记了一个“分离”。现在它工作得很好。

于 2013-08-29T18:06:40.583 回答