Najpierw zobacz https://jdbc.postgresql.org/documentation/83/query.html#query-with-cursor.
Rozwiązałem to w ten sposób.
(jdbc/with-db-transaction [tx connection]
(jdbc/query tx
[(jdbc/prepare-statement (:connection tx)
"select * from mytable"
{:fetch-size 10})]
{:result-set-fn (fn [result-set] ...)}))
gdzie :result-set-fn to funkcja, która zużywa leniwy zestaw wyników.
with-db-transaction zajmuje się autoCommit ustaw na false .:fetch-size nie jest przekazywany z query więc musisz zrobić prepare-statement siebie.