Доктрина 2 Ассоциация накладывает накладные расходы?

Картографирование ассоциаций в Учении 2

<?php
class User
{
    //...
    /**
     * @ManyToMany(targetEntity="Group")
     * @JoinTable(name="User_Group",
     *      joinColumns={@JoinColumn(name="User_id", referencedColumnName="id")},
     *      inverseJoinColumns={@JoinColumn(name="Group_id", referencedColumnName="id")}
     *      )
     */
    private $groups;
    //...
}

В тесте, предполагая, что в этом примере $ groups инициализированы как ArrayCollection () в конструкторе, возвращает все группы, связанные с пользователем.

Программист из моей команды разработчиков хорошо рассказал об этом сценарии. Он загружает все группы, связанные с пользовательской сущностью, нам могут не понадобиться все из них.

При выполнении операторов соединения DQL, скажем, мы хотим выбрать избранные группы, достижимые объединениями DQL, мы присоединяемся к пользователю, группе и избранным. Doctrine снова запрашивает все группы? Это накладные расходы, на которые я пытаюсь указать, - это уже коллекция массивов всех групп.

Как мы контролируем результат от сопоставления ассоциации? Или, если мы удалим сопоставления сопоставлений, можем ли мы по-прежнему использовать DQL для объединения сущностей, для которых не настроены сопоставления сопоставлений? ИЛИ, действительно ли Doctrine использует данные сопоставления ассоциаций в DQL?

Ответы на вопрос(0)

Ваш ответ на вопрос