想象一下这个场景:
我有一些必须从数据库中删除的实体的 id 数组(即几个外部键,用于标识第三个表中的记录)和一些必须更新/插入的实体的 id 数组(基于一些在此时无关紧要的标准)。
我能做些什么来删除这些实体?
- 从数据库加载它们(存储库方式)
- 调用
delete()
获取的对象 - 致电
flush()
我的实体经理
在那种情况下,我可以使我的所有操作成为原子操作,因为我可以在 call 之前更新/插入其他记录flush()
。
但是为什么我要从数据库中加载一些记录只是为了删除它们?所以我写了我的个人 DQL 查询(到 repo 中)并调用它。
问题是,如果我将该函数调用到我的 repo 中,此操作会立即完成,因此无法保证我的“原子性”。
那么,我怎样才能通过遵循第二个“删除选项”来“跳过”这个障碍呢?