Ovladač Oracle JDBC má správnou podporu pro setFetchSize() metoda na java.sql.Statement , což vám umožňuje řídit, kolik řádků ovladač načte najednou.
Nicméně RowMapper jak jej používá Spring, funguje tak, že načte každý řádek do paměti a získá RowMapper převést jej na objekt a uložit objekt každého řádku do jednoho velkého seznamu. Pokud je vaše sada výsledků obrovská, pak se tento seznam zvětší bez ohledu na to, jak JDBC načte data řádku.
Pokud potřebujete zpracovat velké sady výsledků, pak RowMapper není škálovatelný. Můžete zvážit použití RowCallbackHandler místo toho spolu s odpovídajícími metodami na JdbcTemplate. RowCallbackHandler neurčuje, jak se výsledky ukládají, nechává na vás, abyste je uložili.