Я хочу получить большой набор данных с JpaRepository
, поддерживаемый таблицей Oracle. Возможен выбор: вернуть коллекцию (List
) или Page
объекта, а затем просмотреть результаты. Обратите внимание: я должен использовать каждую запись в этом наборе ровно один раз. Это не "поиск-первый-из-большого-набора-и-возврата" операция.
Хотя идея разбиения на страницы привлекательна, производительность будет ужасной (n ^ 2), потому что для каждой запрашиваемой страницы oracle должен будет открывать предыдущие n-1 страницы, что постепенно ухудшает производительность по мере того, как я углубляюсь в набор результатов.
Насколько я понимаю, альтернатива List
состоит в том, что весь набор результатов будет загружен в память. Для Oracle JPA spring не имеет набора результатов поддержки.
Итак, вот мои вопросы
- Правильно ли я понимаю, как
List
работает с данными Spring? Если это не так, я просто используюList
. - Если я прав, есть ли альтернатива потокам наборов результатов Oracle / JPA?
- Есть ли третий способ, о котором я не знаю.
ResultSet
- тогда нет необходимости хранить что-либо еще, кроме текущей строки в памяти. - person a_horse_with_no_name   schedule 29.06.2017