【发布时间】:2018-07-08 20:24:30
【问题描述】:
我有问题的答案列表。我想保存这些答案,然后(在 mongo 给他们一个 id 之后)将它们添加到他们的问题中。
现在我是这样做的:
public Flux<Answer> createAnswers(List<Answer> answers) {
return answerRepository.saveAll(answers)
.map(answer -> {
questionRepository.findById(answer.getQuestionId())
.subscribe(question -> {
question.getAnswers().removeIf(ans -> Objects.equals(ans.getId(), answer.getId()));
question.getAnswers().add(answer);
questionRepository.save(question).block();
});
return answer;
});
}
我也尝试过使用..saveAll(answers).doOnNext() 和doOnEach(),但这种方式不会保存问题。
似乎 map 用于转换数据,但不用于对每个元素进行操作。另外,我对拨打block() 有点困惑。
有没有更好的方法来实现我的目标?
【问题讨论】:
标签: java-8 spring-webflux project-reactor