JOOQ и Oracle REF CURSOR потоковое - PullRequest
       15

JOOQ и Oracle REF CURSOR потоковое

1 голос
/ 11 февраля 2020

JOOQ, по умолчанию, оборачивает параметры REF CURSOR как Result<Record> в сгенерированном коде.

В некоторых случаях - для больших отчетов лучше иметь поток Record - Cursor<Record> или Stream<Record> чем извлечь все записи одновременно.

Имеем ли мы возможность изменить сгенерированный код для этого случая или добиться потоковой передачи Record для REF CURSOR в JOOQ другими способами?

1 Ответ

1 голос
/ 11 февраля 2020

Это в настоящее время (jOOQ 3.12) не возможно, я боюсь. В этой области есть несколько ожидающих запросов:

  • # 4503 Добавить org.jooq.Cursors extends Iterable<Cursor<Record>>
  • # 4472 Добавить Routine.executeLazy() к разрешить выборку org.jooq.Cursors

В зависимости от того, какой продукт базы данных вы используете, вы можете обернуть вашу процедуру возврата REF CURSOR в табличную функцию и получить результаты в обычном SELECT оператор с использованием метода ResultQuery.fetchLazy() в jOOQ. Это будет работать с Oracle и PostgreSQL.

...