Большой список, возвращенный из запроса SimpleJdbcTemplate

вот моя проблема: в какой-то момент в моей Java-программе я получаю (очень) большой список событий из базы данных, используя класс SimpleJdbcTemplate из Spring.

List<Event> events = 
            this.simpleJdbcTemplate.query(myQuery,
            myMapper(), 
            new Object[] {
                    filter.getFirst(),
                    filter.getSecond(),
                    filter.getThird()}
            );

Проблема в том, что список может содержать что-то вроде 600 000 событий ... Следовательно, используется много памяти (а также требуется время для обработки).

Однако мне действительно не нужно извлекать все события сразу. На самом деле я хотел бы иметь возможность перебирать список, читать только несколько событий (связанных с определенным KEY_ID - запрос sql myQuery упорядочен по KEY_ID), обрабатывать их и, наконец, вернуться к итерации, позволяя сборщику мусора избавиться от предыдущие и уже обработанные события, чтобы я никогда не превышал определенный объем памяти.

Есть ли хороший способ сделать это с помощью библиотеки Spring (или любой другой библиотеки)?

Ура, Вакимшаар.

9
задан Jean Logeart 7 July 2011 в 17:30
поделиться