上下文: 我们想删除案例及其相关/子对象中的多条记录。子对象几乎没有相关对象。有4到5个层次结构如下
- 案子
- - 任务
- -----孩子1
- --------孩子2
------------儿童3
相关对象具有主子关系,级联删除设置为 false。
目前我们批量删除案例的方式如下
- 收集批次中的所有案例
- 收集批次中所有案例的所有任务
- 收集批次中所有案例的所有 Child1 记录
- 收集批次中所有 Cases 的所有 Child2 记录
- 收集批次中所有 Cases 的所有 Child3 记录
然后使用批量删除批量删除每组记录。优点是我们每批只有 5 次删除,而且我们不会达到州长限制。
然而,这个过程的缺点是,当上述任何步骤中的删除出错时,整个事务都会回滚。虽然我们可以得到哪个删除导致了他的错误,但我们不能只与那个特定情况相关的对象。
问题:
- 有没有更好的方法来处理记录和子记录的删除。
- 有没有办法只回滚有错误的案例和子记录