Я новичок в концепции реактивного программирования.Я слежу за «Learning Spring Boot 2.0», и описанные простые концепции / примеры понятны.Но я не понимаю, как использовать Mono / Flux в более сложных случаях.Некоторые примеры с пружинной загрузкой, монго и проектным реактором
Моя модель
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<Comment> getAllCommentsByLogin(@RequestParam("login") String login) {
return commentRepository.findByOwnerLogin(login);
};
Но еслиЯ бы немного изменил модель, чтобы хранить владельца по идентификатору сущности, было бы не так легко получить комментарии от владельца
Comment
@Id
private ObjectId _id;
private String content;
private String ownerId;
. Мое намерение состоит в том, чтобы облегчить использование контроллера остатка для конечного пользователя и сначала найтипользовательская сущность по логину и, если существует, все комментарии пользователей
@GetMapping(params = "login")
@ResponseBody
public Flux<Comment> getAllCommentsByLogin(@RequestParam("login") String login) {
return commentRepository.findByOwnerId(userRepository.findByLogin(login).map(user2 -> user2.getId())
};
это решение очевидно неверно, но я не знаю, является ли весь подход неправильным или только этот метод.