Будьте в спящем режиме Критерии, и несколько присоединяются

возможно с, в спящем режиме, критерии делают это?

select A.something, B.something, C.something, D.something
    from  A JOIN B on A.id = B.id_fk
          JOIN C ON B.id = C.id_fk
          JOIN D ON C.id = D.id_fk;
13
задан skaffman 12 February 2010 в 14:34
поделиться

3 ответа

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

Пример:

List books = sess.createCriteria(Book.class)
.setFetchMode("chapters", FetchMode.EAGER)
.setFetchMode("reviews", FetchMode.EAGER)
.list();

Там также есть информация о различных стратегиях получения , которые могут быть вам полезны.

2
ответ дан 1 December 2019 в 22:57
поделиться

Да, на самом деле есть несколько способов сделать это:

  1. При отображении ассоциации, установите его ленивость в значение false и режим выборки, чтобы присоединиться. Это повлияет на все запросы критериев.
  2. Используйте setFetchMode, как описано в других ответах.
  3. Используйте критерии.createAlias ​​(или createCriteria). Это также позволяет вам дополнительно ограничивать строки, которые вы хотите присоединить.
0
ответ дан 1 December 2019 в 22:57
поделиться

Попробуйте установить режим выборки в своих критериях, например:

criteria.setFetchMode(..., FetchMode.EAGER)

Это создает запрос соединения. Вы можете найти более подробную информацию здесь .

1
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: