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