如果我在春季(使用kotlin)使用反应式存储库,并且想返回插入的记录。我该怎么做?我需要一个运算符,该运算符将订阅flatMap返回的内容,然后将其传递给函数,以便可以使用ok().body(fromObject(insertedRecord))
我尝试过的事情:
then
:不返回值.subscribe { Mono.just(ServerResponse.ok().build()) }
:返回Disposable
@Component
class RecordHandler(private val repository: RecordRepository) {
fun create(req: ServerRequest): Mono<ServerResponse> {
return req.bodyToMono(RecordDTO::class.java)
.flatMap { repository.insert(it.toDomain()) }
.then(ok().build())
}
另一种选择是在插入后查询,但这是一种解决方法。
预先感谢
答案 0 :(得分:1)
如何?
return req.bodyToMono(RecordDTO::class.java)
.flatMap { repository.insert(it.toDomain()) }
.flatMap { ok().body(fromObject(it)) }
?