查询顺序 - Doctrine2

时间:2014-01-29 15:14:27

标签: php doctrine-orm

我遇到了数据库提交查询顺序的问题。我有一个实体A,它有一个或多个B实体。我想要做的是将B实体移动到另一个A实体,然后删除它们刚刚移动的B条目。

示例:

这是我的示例实体在任何操作之前查看的内容

A (Mike)
- B (John)
- B (Dave)
A (Jake)
- B (Robert)

我的代码看起来像

// already fetched
$mike = $em->getRepository('A')->find(1);
$jake = $em->getRepository('A')->find(2);

foreach($jake->getBs() as $b) {
  $b->setA($mike);
}

$em->persist($mike);
$em->remove($jake)
$em->flush();

所以基本上,我将'杰克'的所有相关实体移动到'迈克',然后移除'杰克'。问题是Doctrine试图首先删除'Jake',这使约束失败,因为'Robert'仍然指向'Jake'。

这样做的正确方法是什么?

0 个答案:

没有答案