spring-webflux - 如果单声道为空,怎么会有异常?
问题描述
我使用 webflux 和 r2dbc。如果数据库中有重复的值,我想抛出一个错误。
Handler.java
Mono<ServerResponse> save(ServerRequest request) {
return request.bodyToMono(User.class)
.flatMap(user-> userService.save(user))
.flatMap(user -> ok().build());
}
userService.java
public Mono<User> save(User user) {
userRepository.find(user.getId()); // if Mono<User> is empty throw BadRequest Exception
return userRepository.save(todo);
}
Router.java
@Bean
public RouterFunction<?> routes(Handler handler) {
return route(POST("/save"), handler::save);
}
解决方案
userRepository.find(user.getId())
.switchIfEmpty(Mono.error(new BadRequestException()));
推荐阅读
- amazon-web-services - SSH 在一个 EC2 实例中失败,但在另一个实例中有效
- android - 无法定位开发设备;请运行“颤振医生”以获取有关安装其他组件的信息。关于 VS 代码
- python - 什么是烧瓶 python 中的 pycache 文件夹?
- php - 对表PHP中的多维数组进行排序
- codeigniter - 忘记密码不发送电子邮件验证(Codeigniter)
- javascript - JavaScript 中奇怪的数组行为
- jquery - 删除子表上的过滤器(jquery)
- arrays - 在 C 中遍历用户输入和多维数组
- docker - 为什么我无法从 docker 访问 tomcat 网页?
- python - 为什么 Model.fit() 和 Model.evaluate() 在同一个 val 集上的结果不同?