Hibernate выберите идентификатор столбца соединения без объединения - PullRequest
0 голосов
/ 24 сентября 2018

Проблема в том, что мне нужно выбрать объект из базы данных, внутри которого есть столбец соединения, и мне нужен идентификатор этого стороннего объекта.Но hibernate соединяет эти две таблицы или, если находится в режиме отложенного режима, снова запрашивает мою базу данных.Как получить доступ к этому идентификатору, не используя ни одного соединения или запроса, кроме основного запроса на выборку.

Обратите внимание, что я использую версию Hibernate +5 и мне нужен подход через JPA CriteriaBuilder.

Спасибо заранее.

1 Ответ

0 голосов
/ 24 сентября 2018

В этом случае вы можете дважды сопоставить внешний ключ с сущностью, один для фактического ORM и другой для получения FK без фактического запуска нового запроса.

public class Answer {
   @JoinColumn(name = "question_id")
   @ManyToOne(targetEntity = Question.class, fetch = FetchType.LAZY)
   private Question question;

   @Column(name = "question_id", insertable = false, updatable = false)
   private Long questionId;
}

Здесь question_id присутствует втаблица answer.

Таким образом, внешний ключ будет уже доступен в результате первого запроса (в поле questionId), и новый запрос не будет запущен для получения значения FK.

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