Ну отлично, вариант хороший. По итогу я бы разобрался, почему поле не подтянулось. И оба ответа отметил бы решением :)
Чем вариант с Criteria хорош: можно некоторые условия where (по разным сущностям в цепочке отношений), limit, и даже условия приджоойнивания тех или иных сущностей организовать внутри метода. Тем самым появляется гибкость по отношению к голому SQL
Павел, много разной литературы нужно читать, DTO -- это объекты для транспорта данных, они всегда валидны и имутабельны, между слоями должна быть связь через DTO, тк сущности могут поменяться, а DTO чем хороши, что если в ожном слое изменилась логик, то стоит лишь поменять код, формуирующий DTO
Ерлан Ибраев, я поменял в своем примере ссылки, и там все хорошо выбираются связанные сущности (судя по примерам, конечно в описании), не понимаю, почему не будут гидированны связанные сущности, когда мы их приджойнили, когда они должны быть, хоть убейте, не понимаю почему... прошерстил еще ряд источников, везде пишут ровно то, как и ожидается. В других раскрывается даже конкретный SQL, и там именно джойн (именно в той статье был INNER) и при этом все гидрировано, как надо.
Не понимаю также вашей отсылки к типизации языка и упоминании, что ORM -- это ORM.
Мы же говорим о сущностях и ее связях, и говорим о том, каким именно утилитарным инструментом данной ORM доставать связанные сущности для указанной.
Ерлан Ибраев, я уточню — Работаю с Doctrine, это аналог Hybernate, но в языке PHP, и такого рода задачи отлично ложатся на QuryBuilder/Criteria, что есть аналог Criteria API