我是反应式编程概念的新手。我遵循“学习SpringBoot2.0”,所描述的简单概念/示例是可以理解的。但是我不知道如何在更复杂的用例中使用mono/flux。
使用spring boot、mongo和project reactor的一些示例
我的模型
User
@Id
private String id;
private String login;
Comment
@Id
private ObjectId _id;
private String content;
private String ownerLogin;
所以这个简单的例子可以让所有者给出评论
@GetMapping(params = "login")
@ResponseBody
public Flux getAllCommentsByLogin(@RequestParam("login") String login) {
return commentRepository.findByOwnerLogin(login);
};
但是如果我将模型稍微更改为按实体id存储所有者,那么按所有者检索注释就不那么容易了
Comment
@Id
private ObjectId _id;
private String content;
private String ownerId;
我的目的是使rest控制器易于最终用户使用,并首先通过登录找到用户实体,如果存在所有用户注释
@GetMapping(params = "login")
@ResponseBody
public Flux getAllCommentsByLogin(@RequestParam("login") String login) {
return commentRepository.findByOwnerId(userRepository.findByLogin(login).map(user2 -> user2.getId())
};
这种理解显然是错误的,但我不知道整个方法是错误的还是只有这种方法。