我正在尝试找出执行以下操作的正确方法。
name
检查数据库中是否存在记录,这是全局二级索引。 (假设主键为id
。)>name
的项目,则记录id
和name
并返回错误。name
的项目,则继续。现在,代码结构看起来像这样。
private fun checkExistingData(name: String): Mono<QueryResponse> { return repo.getDataByName(name) .filterWhen { Mono.just(!it.hasItems()) } .switchIfEmpty { // log the existing id and name from QueryResponse Mono.error(SomeCustomException)) } .flatMap { // proceed } }
如您所见,如果我想在
id
子句中记录switchIfEmpty
,则需要在其中执行repo.getDataByName(name)
,以便能够检索该项目并获得该项目的id
。显然,这是低效的,因为在switchIfEmpty
之前我已经这样做了。
什么是正确的方法?
我正在尝试找出执行以下操作的正确方法。我想按名称检查记录是否存在于数据库中,这是一个全局二级索引。 (假设主键是id)。如果有...
这可能不是最正确的答案,因为我对反应堆不了解很多,特别是那个单声道在做什么。