Я делал подобные вещи в прошлом. Если вы хотите получить общее количество записей для paginator, то я бы предложил вам сначала выполнить отдельный запрос. Этот запрос должен просто подсчитать и вернуть сумму.
Как вы подозреваете, чтобы посчитать ваши записи по вашему основному запросу, hibernate должен загрузить все записи, хотя лучше всего не загружать все данные для каждой записи. Но все же это занимает время.
Если вам это сойдет с рук, потому что даже запрос подсчета может занять время, если ваши предложения where неэффективны, просто проверьте, что вы вернули полную страницу записей, и установите какой-нибудь индикатор, чтобы показать может быть больше результатов на следующей странице. Это самый быстрый метод, потому что вы выполняете запросы только на каждую страницу так, как вам нужно.