DBから返されるアソシエーションの数を制限できますか?たとえば、次のようなエンティティを持っているとします:Doctrine2 - 返される関連エンティティの数を制限する
/** @Entity */
Article {
/** @OneToMany(targetEntity="Comments") */
private $comments;
...
}
/** @Entity */
Comments { ... }
そして、記事のコレクションを繰り返してみると、最近のコメントは5つしかありません。 (合計で100以上ある可能性があります)。私は、QueryBuilderを使用してカスタムリポジトリからコレクションを取得します。
$articles = $em->getRepository("Article")->findArticles($commentLimit, ...);
foreach($articles as $article) {
foreach($article->getComments() as $comment) {
//loop will iterate just $commentLimit times
echo $comment->getText();
}
}
それはACシングルクエリ内でこれを行うことは可能です:実際には
私はこのようなものを使用しますか?
問題は、コードが各記事に対して1つのクエリを生成することです。 ( 'fetch =" EXTRA_LAZY "'のため)私は1つまたは2つのクエリですべてをフェッチしたいと思います。 –