【发布时间】:2022-12-17 01:00:26
【问题描述】:
我尝试实现一个反应式端点来保存新的实体实例:
SubjectRepository 中保存的方法仍然需要 Subject 没有 Mono 包装器。但是如何从反应式包装器中提取价值并不清楚。
我应该用request.body(BodyExtractor)从Mono<Subject>中提取Subject并调用SubjectRepository.save(Subject s)吗?或者我可以以某种方式将 Mono<> 直接保存到 MongoDB?
这是使用输入主体的正确方法吗?
实体:
@Document
public record Subject(@Id UUID id, String route) {}
@Repository
public interface SubjectRepository extends ReactiveMongoRepository<Subject, UUID> {
}
处理方法:
@NotNull
public Mono<ServerResponse> createSubject(@NotNull ServerRequest request) {
Mono<Subject> data = subjectRepository
.save(/** Somehow extract Subject from request */);
return ServerResponse
.ok()
.contentType(MediaType.APPLICATION_JSON)
.body(data, Subject.class);
}
【问题讨论】:
标签: java spring-webflux