Doctrine 2中的关联映射
<?php
class User
{
//...
/**
* @ManyToMany(targetEntity="Group")
* @JoinTable(name="User_Group",
* joinColumns={@JoinColumn(name="User_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="Group_id", referencedColumnName="id")}
* )
*/
private $groups;
//...
}
在测试中,假设在此示例中,$ groups在构造函数中初始化为ArrayCollection(),返回与该用户关联的所有组。
我的开发团队的程序员对这个场景提出了一个很好的观点。它加载与用户实体关联的所有组,我们可能不需要所有这些组。
在执行DQL连接语句时,假设我们要选择可通过DQL连接实现的收藏组,我们加入用户,组和收藏夹。 Doctrine会再次查询所有组吗?这是我试图指出的开销,已经有了所有组的数组集合。
我们如何控制关联映射的结果?或者,如果我们删除关联映射,我们仍然可以使用DQL来加入没有关联映射设置的实体吗?或者,Doctrine实际上是否使用DQL中关联映射的数据?