Обычно вы бы позволили всем этим классам расширять общий базовый класс и использовать полиморфный запрос Hibernate. Из вашего описания это не представляется возможным.
Конечно, если вы хотите пойти по пути гибернации, вам нужно будет сначала выбрать размер каждой несвязанной таблицы, определить, в какой таблице лежат записи на запрошенной странице (или, возможно, в нескольких), и вручную выбрать нужную страницу. , Это действительно громоздко и определенно должно быть скрыто под каким-то глубоким DAO.
Похоже, что делает только вменяемое решение - это старый добрый SQL с UNION
и отображающий собственный запрос на объекты вашего домена. Hibernate довольно хорошо поддерживает нативные запросы.