0

Doctrine (Symfony2.1) に問題があります。ジョインフェッチサブエンティティ (OneToMany リレーション) による遅延読み込みを防止したいのですが、それらのサブエンティティに対して 1 つの結果しか得られませんでした。

例えば:

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 は「プロジェクト」オブジェクトと 1 つの「フィードバック」オブジェクトを返します (ただし、複数のフィードバックがあります...)。選択をこれに置き換えると、->select(array("p")) すべての「フィードバック」オブジェクトを取得しましたが、遅延ロードされます(多くのクエリ)。

http://docs.doctrine-project.org/en/latest/reference/dql-doctrine-query-language.html#joinsを参照してください

4

1 に答える 1

0

groupBy句を削除する必要があります。

于 2012-12-08T00:43:06.810 に答える