Есть сущность (1), у которой есть ассоциации один ко многим к другим сущностям (2) .
Я хочу на view level передавать только DTO (1),но дело в том, что коллекции внутри этого DTO(1) это тоже DTO(2), а Hibernate,насколько я знаю, не умеет сразу подгружать one to many в виде DTO, из-за чего, как я думаю, у меня остаются только два пути:
В HQL писать join fetch и потом все коллекции через цикл переделывать из Entity в DTO
Создать метод, который будет подгружать к сущности(1) его сущности(2) уже в виде DTO по id, но тогда мне приходится лишний раз бегать к бд
Какой из этих методов более правильный?
Более правильный метод определить нельзя если не учитывать архитктуру классов. Существует множество способов для инициализации объектов. Если у вас, например конструкция, то можно использовать @OneToMany(fetch = FetchType.EAGER).
Во всех случаях Hibernate будет вытаскивать данные из подчиненной таблицы, либо путем соединения таблиц по ключу, либо дополнительными запросами по ключу. Второе более или менее разумно, так как используется только одно значение ключа.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости