Търся да извлека голям набор от данни с JpaRepository
, подкрепен от таблица на Oracle. Възможностите за избор са да върнете колекция (List
) или Page
от обекта и след това да преминете през резултатите. Моля, обърнете внимание - Трябва да използвам всеки запис в този набор точно веднъж. Това не е „търсене-първия-от-голям-набор-данни-и-връщане“ операция.
Въпреки че идеята за страниране е привлекателна, производителността ще бъде ужасна (n^2), защото за всяка заявена страница, oracle ще трябва да изтегли предишни n-1 страници, което прави производителността прогресивно по-лоша, докато навлизам по-дълбоко в набора от резултати.
Моето разбиране за алтернативата List
е, че целият набор от резултати ще бъде зареден в паметта. За oracle JPA spring няма резервен набор от резултати.
И така, ето моите въпроси
- Правилно ли е разбирането ми за начина, по който
List
работи с Spring Data? Ако не е, тогава просто ще използвамList
. - Ако съм прав, има ли алтернатива, която поточи набори от резултати на Oracle/JPA?
- Има ли трети начин, за който не знам.
ResultSet
- тогава няма нужда да пазите нищо друго освен текущия ред в паметта. - person a_horse_with_no_name   schedule 29.06.2017