Doctrine始终只关注双向关联更新的拥有方

时间:2014-07-27 13:32:14

标签: php symfony orm doctrine-orm

我知道拥有方和反方是什么,但我无法理解documentation中的以下内容:

  

由于Doctrine始终只关注双向的拥有方   对于更新的关联,没有必要进行写操作   双向一对多或多对多的逆集合   关联已更新。这些知识通常可用于改进   通过避免加载逆集合来实现性能。

以下代码也来自doc:

<?php
// This code is from doc
// Remove by Elements
$user->getComments()->removeElement($comment);
$comment->setAuthor(null);
$em->flush();

那么上面的代码是多余的?我可以从评论(拥有)方面删除关联:

//This is my code
$comment->setAuthor(null);
$em->flush();

我说错了吗?或者你能提供任何例子吗?谢谢!

修改:

我在doc.Important concepts找到了“拥有变更关联一面”的重要解释。

另外,感谢AlixB,您的回答是正确的,正如上面链接中所解释的那样。

1 个答案:

答案 0 :(得分:1)

此代码对于Doctrine更新字段是正确的。在刷新时,Doctrine将从数据库中删除注释。但是你需要认为某些动作可以在代码中稍后结束。因此,如果您不处理拥有和反向的僵尸程序,则在您的逻辑中,您将使用空作者进行评论,但是在用户的评论列表中。例如,如果删除后你迭代这个用户的评论列表,你就会出错。

你明白我的意思吗?