java - JPA 来自同一个表的多个 FK

标签 java jpa jpa-2.0 eclipselink

有两个表,分别名为 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/

相关文章:

java - Gradle 多项目多重依赖

java junit没有main函数

java - java.util.zip.Deflater 和 java.util.zip.Inflater 类线程安全吗

java - 为什么我的查询或 jpa 查询在 spring 中不起作用

jpa - 如何在 WebSphere Liberty 上通过 JPA 使用 H2 数据库

java - 我如何用 JPA 表达这个约束?

java - 从哈希集中生成可能的无序组合对

java - JBoss AS 6 中 EntityManager 初始化之前的代码 Hook

复合键的 JPA 映射问题

eclipse 在此持久单元中定义名为 "ID_GENERATOR"的重复生成器