我对 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);