Java 将三个操作与WebFlux相结合
Сan不知道如何组合三个相互依赖的操作 我有一个新用户需要保存到库中:Java 将三个操作与WebFlux相结合,java,spring-boot,spring-webflux,Java,Spring Boot,Spring Webflux,Сan不知道如何组合三个相互依赖的操作 我有一个新用户需要保存到库中: 从基中获取项 roleRepo.findByName(“用户”);//返回单声道 user.setRole(…);//来自roleRepo.findByName(“用户”)的集合结果是字符串 将第一次操作的数据保存到数据库中 userRepo.save(user); // return Mono<User> userRepo.save(用户);//返回单声道 保存到基本的新用户角色
roleRepo.findByName(“用户”);//返回单声道
user.setRole(…);//来自roleRepo.findByName(“用户”)的集合结果是字符串
userRepo.save(user); // return Mono<User>
userRepo.save(用户);//返回单声道
UserRole uRole = new UserRole();
urole.setUserId(user.getId);
urole.setRoleId(role.Id);
userRolesRepo.save(uRole) // return Mono<UserRole>
UserRole uRole=newuserrole();
urole.setUserId(user.getId);
urole.setRoleId(role.Id);
userRolesRepo.save(uRole)//返回Mono
Mono<User>
Mono
到控制器。使用flatmap组合异步操作。尽量像链条一样使用它们,避免嵌套 未经测试,但这将为您提供一个启动:
roleRepo.findByName(“用户”)
.flatMap(角色->{
user.setRole(角色);
返回Mono.just(用户);
})
.flatMap(用户->用户repo.save(用户))
.flatMap(用户->{
UserRole uRole=新的UserRole();
urole.setUserId(user.getId);
urole.setRoleId(role.Id);
返回Mono.zip(Mono.just(user)、userRolesRepo.save(uRole));
})
.flatMap(data->Mono.just(data.getT1());
Mono<User>