通常、Mysql を使用して大きな結果セットをクエリする場合は、次のように記述します (この回答から取得):
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
現在、jOOQ 2.0.5 を使用していますが、同じ結果が得られません。
fetchLazy
運が悪かったので呼び出してみましたが、結果セット全体がメモリにロードされます。
Cursor<Record> result = query.fetchLazy(Integer.MIN_VALUE);
回避策として、を使用してSQLクエリを取得し、それを実行するquery.getSQL()
のに適したものを作成できます。Statement
jOOQ を使用して結果セットをストリームする別の方法はありますか?