我对 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 向我返回了“项目”对象和一个单一的“反馈”对象(但有不止一个反馈......)。当我将选择替换为:->select(array("p"))
我得到了所有的“反馈”对象,但随后有延迟加载(许多查询)。
见http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#joins