Если запросом ограничить набор полей, например:
$em->createQuery("select u.id, u.name from MyApp\Domain\User u")->getResult();
то на выходе получаем не сущности, а скаляры.
В доке
https://www.doctrine-project.org/projects/doctrine... объясняется почему и предлагается если очень нужно использовать partial:
$em->createQuery("select partial u.{id, name} from MyApp\Domain\User u")->getResult();
получим сущности у которых заполнены только указанные поля. Вроде норм, но вот с джойном это уже не работает.
Понятно, что получить только часть объекта в некоторых случаях чревато проблемами, но вот, к примеру, есть типичная задача: вывести список постов с указанием автора. Нам понадобятся у Post поля id и title, и еще у User поля name, post_id. Выбирать всё - очень не рационально, ведь поле с текстом одного лишь поста объемнее чем необходимые нам поля всех записей суммарно. Это упрощенный пример, суть ситуации в том, что выбирать все поля - не вариант.
Если же укажем в запросе выборку только необходимых полей, то не получим объектов, а значит и нет смысла в ORM.
Предлагается ли Doctrine решение этой проблемы или какова в общем практика?