Search code examples
jooqnonblockingr2dbc

Does `ResultQuery#fetchAsync()` work with r2dbc in jOOQ 3.15.1?


I am wanting to use non-blocking r2dbc without 'using a third party reactive stream API', and currently have this working when I configure the DSLContext with JDBC (ie. all the records are printed):

     // appended to a jOOQ select query
     .fetchAsync()
     .thenApply{ it.map(mapping(::Film)) }
     .whenComplete { result, _ -> println( result ) }

however, if I configure the DSLContext to use r2dbc (without any other changes), the println( result ) prints null :-(

I:

  • am using Kotlin, but not bridging to coroutines yet ... only the above calls are involved
  • am using io.r2dbc:r2dbc-mssql:0.8.6.RELEASE
  • don't know if r2dbc is 'working' in any sense ... I'm relying on jOOQ to hit me with an exception if not ... I've not seen a single piece of data relayed by r2dbc at this stage.

Solution

  • As of jOOQ 3.15.1, this isn't possible yet, see https://github.com/jOOQ/jOOQ/issues/11717. It's likely this will be fixed in a 3.15.x patch release