CriteriaBuilder построить результат из многих таблиц - PullRequest
0 голосов
/ 13 июня 2019

Я использую javax.persistence.criteria.CriteriaBuilder для создания моего запроса.Если в образце я указываю не одно поле, то формируются дополнительные запросы.Как я могу решить эту проблему?

Some{
  final Long id;
  final String name;
  final String code;
}
criteriaQuery = criteriaQuery.select(
  criteriaBuilder.construct(
    Some.class,
    ((Path) someJoin.get(SomeClass1_.ID)), // TYPE: LONG
    ((Path) someJoin.get(SomeClass1_.NAME)), // TYPE: STRING
    ((Path) someJoin.get(SomeClass2_.CODE)), // TYPE: STRING
  )
)

, если я вызову запрос на выполнение, я увижу один SQL-запрос в журналах

Some{
  final SomeClass1 someClass1;
  final String code;
}
criteriaQuery = criteriaQuery.select(
  criteriaBuilder.construct(
    Some.class,
    someJoin.get(SomeClassN_.SOME_CLASS1)), // TYPE: MY CUSTOME TYPE
    ((Path) someJoin.get(SomeClass2_.CODE)), // TYPE: STRING
  )
)

, если я сейчас вызову запрос на выполнение, я увижу два SQL-запросав логах.Второй запрос - получить SOME_CLASS1 по ID

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

Спасибо

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