För att använda en markör för att hämta data måste du ställa in ResultSet-typen för ResultSet.TYPE_FORWARD_ONLY (standard) och autocommit till false förutom att ställa in en hämtningsstorlek. Det hänvisas till i dokumentet du länkade till, men du nämnde inte uttryckligen att du gjorde dessa steg.
Var försiktig med PostgreSQL:s partitioneringsschema. Det gör verkligen mycket hemska saker med optimeraren och kan orsaka enorma prestandaproblem där det inte borde finnas (beroende på detaljerna i din data). I vilket fall som helst, är din rad bara 1,8 miljoner rader? Det finns ingen anledning att det skulle behöva partitioneras baserat på enbart storlek eftersom det är korrekt indexerat.