Да меня вот что смущает. Тут указывается, что generatedAllias ещё сортируется по nameFull, однако у меня в самом запросе происходит сортировка по этому полю. Не происходит ли так, что он сортирует таблицу в базе 2 раза?
Меня в логе смущает, что в SQL нет limit или другой конструкции вашей бд. 15 записей не дают такой нагрузки.
Обычно пагинацию в SQL видно, и вроде это тоже стандартное поведение для Hibernate. А вы, используя HQL разгружаете БД и грузите аме страницы внутрь. Пртчем, если кэш 2-го уровня выключен (по умолчанию), то каждый раз данные для ScrollableResults тянутся в память сесии из базы, особенно если это web-приложение.
В кратком руководстве по пейджингуHibernate рекомендуют Criteria API, более гибкая спецификация, чем HQL, может устроит, раз native sql не хочется.