Есть ли способ получить запросы с помощью Hibernate session.get ()? - PullRequest
0 голосов
/ 01 октября 2019

Я работаю с Hibernate 5 Criteria Builder Queries, получая с помощью Criteria Queries. Но при вызове session.get () SQL создает несколько запросов для связанных объектов Hibernate при их вызове. Есть ли способ получить их одним запросом, как Hibernate Criteria Query Fetching.

CriteriaQuery<AdvanceRecieved> advanceCriteria = builder.createQuery(AdvanceRecieved.class);
Root<AdvanceRecieved> advanceRoot = advanceCriteria.from(AdvanceRecieved.class);

advanceRoot.fetch(AdvanceRecieved_.department,JoinType.LEFT);

Я извлек эти объекты с помощью fetch (), Но я не нашел пример для fetch ниже примера кода .

ItemsABS selectedItem = jpaSess.get(ItemsABS.class, dealer.id);
Set<Tax> itemtaxes = selectedItem.getTaxEligibility();

1 Ответ

0 голосов
/ 01 октября 2019

Вы видите несколько запросов, потому что у вас, вероятно, есть отношение «один ко многим» между ItemsABS и TAX сущностями. Поэтому, когда вы запрашиваете ItemsABS данные, он по умолчанию выбирает прикрепленные ссылки (то есть TAX данные), и, следовательно, для этого запускается несколько запросов.

Если вам просто нужны данные ItemsABS, то вывероятно, придется использовать LAZY LOADING при получении данных для ItemsABS. Это можно определить на уровне объекта, используя @OneToMany(fetch = FetchType.LAZY)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...