Untuk menggunakan kursor untuk mengambil data, Anda harus mengatur jenis ResultSet dari ResultSet.TYPE_FORWARD_ONLY (default) dan autocommit ke false selain mengatur ukuran pengambilan. Itu dirujuk dalam dokumen yang Anda tautkan tetapi Anda tidak secara eksplisit menyebutkan bahwa Anda melakukan langkah-langkah tersebut.
Hati-hati dengan skema partisi PostgreSQL. Itu benar-benar melakukan hal-hal yang sangat mengerikan dengan pengoptimal dan dapat menyebabkan masalah kinerja besar-besaran di mana seharusnya tidak ada (tergantung pada spesifik data Anda). Bagaimanapun, apakah baris Anda hanya 1,8 juta baris? Tidak ada alasan bahwa itu perlu dipartisi berdasarkan ukuran saja karena diindeks dengan tepat.