有两个表名为Employee和Order。
表Employee(1)-(*)Order之间的关系。
此外,该订单还有来自Employee的两个FK,分别名为EmployeeEncoder和EmployeeUpdater。

我正在使用JDK 7的Netbeans 7.0下使用EclipseLink(JPA 2.0)。

针对已记录的员工创建订单并不是一件容易的事。
当涉及更新订单和设置EmployeeUpdater时,其中EmployeeEncoder等于EmployeeEncoder时,将复制Employee记录。

我如何解决该线程上无法重复EmployeeUpdater上的记录的问题?

最佳答案

当您持久保存新订单时,它应从相同的持久性上下文(EntityManager)引用一个Employee。尝试为Employee做一个find()并将Order的雇员设置为该雇员。您也可以使用merge()代替persist。

09-11 20:21