【发布时间】:2021-10-09 17:45:32
【问题描述】:
我有一个批处理来更新表 A 中的实体(实体具有预先生成的 id)并将子实体插入到表 B(生成的 id)中。
在批处理作业运行之前,表 A 将始终被填充,表 B 将始终为空。
我想要实体 A 和 B 之间的双向关系(对其他批处理很有用),但是在父 A 上调用 entitymanager.merge 会导致 B 和 A 的选择语句。这是不必要的,因为 B 将始终是新记录并使用 entitymanager.persist 单独插入。这确实会影响性能,因为有多个子集合(称为 C),因此对 B 和 C 有不必要的选择。
我希望在子集合上仅使用 Cascade.PERSIST 可以在 A 上调用合并时阻止这些选择,但似乎并非如此。
这是否可能,或者,正如我目前正在做的那样,是删除 @OneToMany 关系并在父方仅使用 @ManyToOnes 的唯一解决方案?
【问题讨论】: