А для Вас нет? Инверсия как раз и достигается путем использования абстракции для инъекции зависимости. Тоесть эта абстракция имеет инверсию а не ижект в сервис.
Так в доктрине если в селекте указать связанные сущности в запросе она автоматом жадно загрузит. Тоесть в репе у вас запрос который принимает ваш with параметр и докидывает join с addSelect к базовому запросу. Про квери билдер он же есть в ентити менеджере в доктрине и доступен в репозитории, зачем городить еще один класс.
А для Вас нет? Инверсия как раз и достигается путем использования абстракции для инъекции зависимости. Тоесть эта абстракция имеет инверсию а не ижект в сервис.
Так в доктрине если в селекте указать связанные сущности в запросе она автоматом жадно загрузит. Тоесть в репе у вас запрос который принимает ваш with параметр и докидывает join с addSelect к базовому запросу. Про квери билдер он же есть в ентити менеджере в доктрине и доступен в репозитории, зачем городить еще один класс.