Подгрузка One-to-Many и Many-to-Many ассоциаций в Hibernate

184
16 декабря 2018, 22:20

Есть сущность (1), у которой есть ассоциации один ко многим к другим сущностям (2) .

Я хочу на view level передавать только DTO (1),но дело в том, что коллекции внутри этого DTO(1) это тоже DTO(2), а Hibernate,насколько я знаю, не умеет сразу подгружать one to many в виде DTO, из-за чего, как я думаю, у меня остаются только два пути:

  1. В HQL писать join fetch и потом все коллекции через цикл переделывать из Entity в DTO

  2. Создать метод, который будет подгружать к сущности(1) его сущности(2) уже в виде DTO по id, но тогда мне приходится лишний раз бегать к бд

Какой из этих методов более правильный?

Answer 1

Более правильный метод определить нельзя если не учитывать архитктуру классов. Существует множество способов для инициализации объектов. Если у вас, например конструкция, то можно использовать @OneToMany(fetch = FetchType.EAGER).

Во всех случаях Hibernate будет вытаскивать данные из подчиненной таблицы, либо путем соединения таблиц по ключу, либо дополнительными запросами по ключу. Второе более или менее разумно, так как используется только одно значение ключа.

READ ALSO
отображение фотографии из mysql

отображение фотографии из mysql

пишу программу который позволяет добавить вопрос с нескольким файлом модель состоит из этих полей

166
Не получается в методе МАХ вывести максимум. С созданием массива вроде все в порядке [закрыт]

Не получается в методе МАХ вывести максимум. С созданием массива вроде все в порядке [закрыт]

Код должен создавать и набивать массив числами с клавиатуры в методе initializeArrayМетод max должен получать максимум из массива метода initializeArray...

178
Сравнение двух таблиц и изменение цвета текста строки таблицы

Сравнение двух таблиц и изменение цвета текста строки таблицы

Есть 2 таблицыSql запросом сравниваю таблицы на совпадающие значения первого столбика и при совпадении нужно закрасить строки первой таблицы...

218
IO Java. Проблемы с удалением и поиском

IO Java. Проблемы с удалением и поиском

Новичок в Java, учусьВозникла проблема с удалением и поиском во время решения

191