возможно с, в спящем режиме, критерии делают это?
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;
В справочном материале Hibernate есть несколько хороших примеров, демонстрирующих использование setFetchMode для получения ассоциаций с внешним соединением.
Пример:
List books = sess.createCriteria(Book.class)
.setFetchMode("chapters", FetchMode.EAGER)
.setFetchMode("reviews", FetchMode.EAGER)
.list();
Там также есть информация о различных стратегиях получения , которые могут быть вам полезны.
Да, на самом деле есть несколько способов сделать это:
Попробуйте установить режим выборки в своих критериях, например:
criteria.setFetchMode(..., FetchMode.EAGER)
Это создает запрос соединения. Вы можете найти более подробную информацию здесь .