Doctrine 2 Association Mapping Overhead?

时间:2012-08-04 19:53:06

标签: doctrine-orm

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中关联映射的数据?

0 个答案:

没有答案