【问题标题】:Preventing lazy-loading gives me 1 "subentity"防止延迟加载给了我1个“子实体”
【发布时间】:2012-12-05 10:15:02
【问题描述】:

我对 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

【问题讨论】:

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


    【解决方案1】:

    您应该删除groupBy 子句。

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2015-09-21
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多