>JOOQ 将 REF CURSOR out 参数包装为生成的代码中的Result<Record>
。
在某些情况下 - 对于大型报告,最好有记录流 -Cursor<Record>
或Stream<Record>
,而不是一次获取所有记录。
我们是否有可能更改在这种情况下生成的代码或通过其他方式在 JOOQ 中实现 REF CURSOR 的Record
流?
恐怕目前(jOOQ 3.12(是不可能的。该区域中有一些待处理的功能请求:
- #4503 添加
org.jooq.Cursors extends Iterable<Cursor<Record>>
- #4472 添加
Routine.executeLazy()
以允许获取org.jooq.Cursors
但是,根据您使用的数据库产品,您可以将REF CURSOR
返回过程包装在表值函数中,并使用jOOQ的ResultQuery.fetchLazy()
方法在普通SELECT
语句中获取结果。这将适用于Oracle和PostgreSQL。