Комментарии 4
Скажите пожалуйста, есть ли возможность использовать ResultSetMapping вместе с createQueryBuilder?
У объекта Query есть публичный метод setResultSetMapping, однако для того, чтобы этим воспользоваться надо указывать обфусцированные имена полей конечного SQL, что никак не возможно узнать…
У объекта Query есть публичный метод setResultSetMapping, однако для того, чтобы этим воспользоваться надо указывать обфусцированные имена полей конечного SQL, что никак не возможно узнать…
0
В Doctrine есть два QueryBuilder — SQL и ORM (DQL). ResultSetMapping предназначен для работы с SQL-запросами, а метод createQueryBuilder EntityManager'a вернет Вам ORM QueryBuilder. В последнем случае я не вижу необходимости использовать ручной ResultSetMapping, т.к. запрос Вы составляете уже в терминах описанных сущностей, используя DQL. В первом же случае, при использовании SQL QueryBuilder, поля в выборке переименовываться не будут.
0
Понял, благодарю. Необходимость использовать ручной ResultSetMapping все же есть, т.к. несмотря на то, что используются термины сущностей, в select может быть группировка, джоин и прочее, таким образом ответ будет получен в виде ассоциативного массива, а приятней было бы его замапить в какой-нибудь объект.
Свой частный вопрос решил, впрочем, примером с DTO из вашей статьи, благодарю.
Свой частный вопрос решил, впрочем, примером с DTO из вашей статьи, благодарю.
+2
Да, для группировок и т.п. Вам должно подойти решение с NEW DTO из DQL.
www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/dql-doctrine-query-language.html#new-operator-syntax
www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/dql-doctrine-query-language.html#new-operator-syntax
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Doctrine ResultSetMapping на примерах