有两个表,分别名为 Employee 和 Order。 表 Employee (1) -- (*) Order 之间的关系。 另外,Order 有两个来自 Employee 的 FK,名为 EmployeeEncoder 和 EmployeeUpdater。
我使用 JDK 7 在 Netbeans 7.0 下使用 EclipseLink (JPA 2.0)。
针对所记录的员工创建订单并不麻烦。 当更新订单并设置 EmployeeUpdater(其中 EmployeeEncoder 等于 EmployeeEncoder)时,Employee 记录会重复。
我怎样才能以不可能复制 EmployeeUpdater 上的记录的方式解决此线程?
最佳答案
当您持久化一个新订单时,它应该引用同一持久化上下文 (EntityManager) 中的 Employee。尝试为 Employee 执行 find() 并将订单的员工设置为该值。您还可以使用 merge() 而不是 persist。
关于java - JPA 来自同一个表的多个 FK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866972/