Symfony2和学说:如何进行原子操作?

Symfony2和学说:如何进行原子操作?,symfony,doctrine-orm,Symfony,Doctrine Orm,想象一下这个场景: 我有一些必须从数据库中删除的实体的ID数组(即,将记录标识到第三个表中的两个externals键)和一些必须更新/插入的实体的ID数组(基于一些目前并不重要的标准) 如何删除这些实体 从数据库加载它们(存储库方式) 对获取的对象调用delete() 在我的实体管理器上调用flush() 在这种情况下,我可以使所有操作原子化,因为我可以在调用flush()之前更新/插入其他记录 但是为什么我必须从db加载一些记录来删除它们呢?因此,我将我的个人DQL查询(写入repo)并调

想象一下这个场景:

我有一些必须从数据库中删除的实体的ID数组(即,将记录标识到第三个表中的两个externals键)和一些必须更新/插入的实体的ID数组(基于一些目前并不重要的标准)

如何删除这些实体

  • 从数据库加载它们(存储库方式)
  • 对获取的对象调用
    delete()
  • 在我的实体管理器上调用
    flush()
在这种情况下,我可以使所有操作原子化,因为我可以在调用
flush()
之前更新/插入其他记录

但是为什么我必须从db加载一些记录来删除它们呢?因此,我将我的个人DQL查询(写入repo)并调用它。
问题是,如果我在repo中调用这个函数,这个操作会立即完成,因此我的“原子性”无法得到保证

那么,我如何通过遵循第二个“删除选项”来“跳过”这个障碍呢?

使用
flush()。这也是可能的,这种方法应该能解决你的问题