С Hibernate 5.2 мы можем использовать метод stream()
вместо scroll()
, если хотим извлечь большой объем данных.
Однако при использовании scroll()
с ScrollableResults
мы можем подключиться к поисковому процессу и освободить память путем выселения объекта из постоянного контекста после его обработки и/или очистки всего сеанса каждый раз и затем.
Мои вопросы:
- Теперь, если мы используем метод
stream()
, что происходит за кулисами? - Можно ли вывести объект из постоянного контекста?
- Периодически очищается сеанс?
- Как достигается оптимальное потребление памяти?
- Можно использовать, например. StatelessSession?
- Кроме того, если мы установили
hibernate.jdbc.fetch_size
на некоторое число (например, 1000) по свойствам JPA, то как это хорошо сочетается с прокручиваемыми результатами?