我将 webflux 与 r2dbc 一起使用。
我尝试在一项服务中保存两个表,但只有一个实际保存。
可能有一种方法可以在处理程序中执行两次 flatmap,但我想在服务中使用事务。
Handler.java
Mono<ServerResponse> save(ServerRequest request) {
return request.bodyToMono(Todo.class)
.flatMap(todo-> todoService.save(todo))
.flatMap(todo -> ok().build());
}
TodoService.java
public Mono<Todo> save(Todo todo) {
todoLogRepository.save(getTodoLog(todo)); // this now work
return todoRepository.save(todo);
}
Router.java
@Bean
public RouterFunction<?> routes(InvestmentHandler handler) {
return route(POST("/save"), handler::save);
}