防止延迟加载给我一个“子实体”

时间:2012-12-05 10:15:03

标签: doctrine-orm lazy-loading symfony-2.1

我对Doctrine(Symfony2.1)有疑问。我想通过连接获取子实体(OneToMany关系)来防止延迟加载,但是我只获得了一个子实例的结果。

例如:

public function getSingleProjectQuery($project){
    $query = $this->createQueryBuilder('p')
            ->select(array("p", "fb"))
            ->where('p.id = :project_id')->setParameter('project_id', $project)
            ->leftJoin('p.feedbacks', 'fb')
            ->groupBy('p.id')
            ->getQuery();
    return $query;
}

在这个示例中,Doctrine返回“Project”对象和一个“反馈”对象(但有多个反馈......)。 当我将select替换为:->select(array("p")) 我得到了所有“反馈”对象,但是然后有懒惰加载(许多查询)。

请参阅http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#joins

1 个答案:

答案 0 :(得分:0)

您应该删除groupBy子句。

相关问题