3

我有两个有unidirectional @OneToMany Lazy关系的实体。当我尝试添加一个孩子时,似乎 Hibernate 4(我的 JPA 提供程序)实际上执行了

  1. 选择查询
  2. 删除连接表上具有该父 ID 的所有子代
  3. 在连接表上重新插入所有和新的孩子

如何让 Hibernate 只插入我想要的孩子,而不改变我的关系?

4

2 回答 2

2

默认情况下,单向@OneToMany关系将使用连接表,它将按照我的问题执行操作。如果您使用 JPA2 并且不在父表上使用多态,则可以添加@JoinColumn,这将在子表而不是另一个连接表上创建外键。JPA 提供者将不会再次执行删除和重新插入。

于 2013-08-22T02:10:26.803 回答
1

建立双向关系将解决您的问题。你可以在这里阅读一些信息

于 2013-08-20T13:13:45.753 回答