我在以反应方式运行 JOOQ 例程时遇到问题。我的 Spring 项目是使用 R2DBC 设置的,DSLContext bean 使用其连接工厂。
我有一个数据库过程,我想使用 Project Reactor 直接从我的代码执行。
最好的方法是什么?
这是我当前的代码:
private final DSLContext dslContext;
@Override
public Mono<Void> upsertJobContent(UpsertJobContentData data) {
var routine = toUpsertJobBaseDataRoutine(data);
return Mono.fromRunnable(() -> routine.execute(dslContext.configuration()));
}
private UpsertJobBaseData toUpsertJobBaseDataRoutine(UpsertJobContentData data) {
UpsertJobBaseData procedure = new UpsertJobBaseData();
procedure.setPCompanyId(data.getCompanyId());
procedure.setPTitle(data.getJobTitle());
...
return procedure;
}
从 jOOQ 3.19 开始,不支持此功能,请参阅已知限制列表:
考虑到这一特定任务的复杂性、社区中反应式编程模型的吸引力已经下降,以及支持 R2DBC 的其他 RDBMS 很少,它不太可能在不久的将来成为优先事项。