Запрос и разбиение по страницам через несколько несвязанных типов сущностей с Hibernate - PullRequest
6 голосов
/ 23 января 2012

У меня странное бизнес-требование.

У нас есть несколько несвязанных типов сущностей, которые нужно будет отображать в едином списке, с некоторой базовой информацией от сущности, отсортированной по единственному полю, все онигарантированно, ДАТА.Эти объекты могут или не могут даже быть в той же базе данных.Результирующий набор должен быть отображаемым на странице.

Есть ли какой-нибудь реальный способ добиться этого с помощью критериев, HQL или каким-либо вменяемым средством?

1 Ответ

4 голосов
/ 23 января 2012

Обычно вы бы позволили всем этим классам расширять общий базовый класс и использовать полиморфный запрос Hibernate. Из вашего описания это не представляется возможным.

Конечно, если вы хотите пойти по пути гибернации, вам нужно будет сначала выбрать размер каждой несвязанной таблицы, определить, в какой таблице лежат записи на запрошенной странице (или, возможно, в нескольких), и вручную выбрать нужную страницу. , Это действительно громоздко и определенно должно быть скрыто под каким-то глубоким DAO.

Похоже, что делает только вменяемое решение - это старый добрый SQL с UNION и отображающий собственный запрос на объекты вашего домена. Hibernate довольно хорошо поддерживает нативные запросы.

...