Micronaut 在控制器中正确处理 io.reactivex.Maybe,但如何处理?

Micronaut correctly handles io.reactivex.Maybe in Controllers, but how?

在我的控制器中我有:

@Get("/{id}")
fun findById(id: String): Maybe<AccountTransaction> {
    return accountTransactionRepository.findById(ObjectId(id))
}

存储库如下所示:

fun findById(id: ObjectId): Maybe<AccountTransaction> {
    return Flowable.fromPublisher(getCollection().find(Filters.eq("_id", id))).firstElement()
}

如果我传入无效的 ID,控制器会正确响应 404。太棒了!我只是不知道为什么/怎么会这样。我假设它刚刚融入 MN,它会检查它是否为空。但是有人可以向我解释一下/确认吗?

I assume that's just baked in to MN and it checks to see if it is empty or not. But can someone explain that to me / confirm?

每当控制器操作 returns 为空或为空 Maybe

时,都会生成 404

有关更多信息,请访问 https://docs.micronaut.io/2.4.2/guide/#serverIO