我正在尝试在一个事务中生成一个同时执行 2 个 postgresql 命令的代码。我的 DB 2 规则中有不同的规则顺序,我想在它们之间切换规则顺序。我正在使用 r2dbc-postgresql (v0.8.4) 和 spring-data-r2dbc (v1.1.1)。
我已经定义了 DatabaseClient 和 TransactionalOperator 并尝试使用那段代码:
public Mono<Void> insertRows() {
return databaseClient.execute("update rules set rule_order = 2 where rule_order = 1")
.fetch().rowsUpdated()
.then(databaseClient.execute("update rules set rule_order = 1 where rule_order = 2")
.fetch().rowsUpdated())
.then()
.as(transactionalOperator::transactional);
}
但结果是命令一个接一个地运行,所以我完成了两个规则的规则顺序 = 1。
我做错了什么,我该如何解决这个问题?