JPA: каков правильный шаблон для перебора больших наборов результатов?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JPA: каков правильный шаблон для перебора больших наборов результатов?

Сообщение Anonymous »

Предположим, у меня есть таблица с миллионами строк. Как правильно выполнить итерацию запроса к этой таблице, используя JPA, чтобы у меня не было всего списка в памяти с миллионами объектов?
Например, я подозреваю, что следующее может взорваться, если таблица большая:

Код: Выделить всё

List models = entityManager().createQuery("from Model m", Model.class).getResultList();

for (Model model : models)
{
System.out.println(model.getId());
}
Является ли разбиение на страницы (цикл и обновление вручную setFirstResult()/

Код: Выделить всё

setMaxResult()
) действительно лучшее решение?

Изменить: основной вариант использования, на который я ориентируюсь, — это своего рода пакетное задание. Ничего страшного, если это займет много времени. Веб-клиент не задействован; Мне просто нужно «что-то сделать» для каждой строки, по одной (или небольшому N) за раз. Я просто пытаюсь избежать одновременного хранения их всех в памяти.

Подробнее здесь: https://stackoverflow.com/questions/506 ... esult-sets
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»