我有两个有unidirectional @OneToMany Lazy
关系的实体。当我尝试添加一个孩子时,似乎 Hibernate 4(我的 JPA 提供程序)实际上执行了
- 选择查询
- 删除连接表上具有该父 ID 的所有子代
- 在连接表上重新插入所有和新的孩子
如何让 Hibernate 只插入我想要的孩子,而不改变我的关系?
我有两个有unidirectional @OneToMany Lazy
关系的实体。当我尝试添加一个孩子时,似乎 Hibernate 4(我的 JPA 提供程序)实际上执行了
如何让 Hibernate 只插入我想要的孩子,而不改变我的关系?
默认情况下,单向@OneToMany
关系将使用连接表,它将按照我的问题执行操作。如果您使用 JPA2 并且不在父表上使用多态,则可以添加@JoinColumn
,这将在子表而不是另一个连接表上创建外键。JPA 提供者将不会再次执行删除和重新插入。
建立双向关系将解决您的问题。你可以在这里阅读一些信息