spring-webflux - 如何使用 webflux 和 r2dbc 在一个请求中保存两次?
问题描述
我将 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);
}
解决方案
推荐阅读
- javascript - onEndReached on flatlist invoked endless [React Native]
- javascript - 无法正确测试正确的组件是否基于作为**组件**传递到 App.js 中的路由呈现,使用酶和玩笑反应?
- c# - C# regex to find all the terms that start with @ but ignoring terms with white space
- windows - Find-Package 有效,但 Install-Package 在 powershell 中使用巧克力仅显示 nuget 错误
- python - 来自新程序员的关于 python 类和变量的基本问题
- javascript - 在我的情况下如何在数组中添加新对象
- python - 如何在 Pandas 中使用 DateTimeIndex 进行索引
- python - 如何使用依赖项组织我的 git 存储库?
- android - 单击 BottomTabBar 导航上的第一项在 Android 上不起作用
- sql - SQL Server database backup script: How to use parameters for file path/location?