0

(多対多) とUser関連付けられたエンティティを想像してください。Groupユーザーの詳細を表示する必要があります(たとえば、グループ名またはグループ数とともに)。私のコントローラー (Symfony 2) では、すべてのユーザーを取得できます。

$users = $this->em->getRepository('My\Entity\User')
    ->getAll();

// Assign $users to whatever the view engine
return $this->render('users.html.twig', array('users' => $users));

もちろん、デフォルトで関連付け LAZY であるため、JOIN 操作Groupは実行されません。ほとんどの場合、これで問題ありません。

しかし、ビューでグループ数を取得しようとするとどうなりますか?

{% for user in users %}
    {{ user.groups|length }}
{% endfor %}

その結果、生ごとに 1 つのクエリが実行されます。つまり、クエリの数はユーザーの数と同じです。1000 人のユーザー (およびページネーションなし) の場合はどうなりますか?

クラスに関連付けられているすべてのエンティティを取得するにはどうすればよいUserですか (つまり、クエリを 1 つだけ発行します)。

4

1 に答える 1