我知道拥有方和反方是什么,但我无法理解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,您的回答是正确的,正如上面链接中所解释的那样。
答案 0 :(得分:1)
此代码对于Doctrine更新字段是正确的。在刷新时,Doctrine将从数据库中删除注释。但是你需要认为某些动作可以在代码中稍后结束。因此,如果您不处理拥有和反向的僵尸程序,则在您的逻辑中,您将使用空作者进行评论,但是在用户的评论列表中。例如,如果删除后你迭代这个用户的评论列表,你就会出错。
你明白我的意思吗?