返回插入记录的处理程序

时间:2019-04-03 18:34:43

标签: spring kotlin reactor

如果我在春季(使用kotlin)使用反应式存储库,并且想返回插入的记录。我该怎么做?我需要一个运算符,该运算符将订阅flatMap返回的内容,然后将其传递给函数,以便可以使用ok().body(fromObject(insertedRecord))

我尝试过的事情:

  1. then:不返回值
  2. .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())
}

另一种选择是在插入后查询,但这是一种解决方法。

预先感谢

1 个答案:

答案 0 :(得分:1)

如何?

 return req.bodyToMono(RecordDTO::class.java)
            .flatMap { repository.insert(it.toDomain()) }
            .flatMap { ok().body(fromObject(it)) }