【发布时间】:2021-11-06 22:24:10
【问题描述】:
我遇到无法更新数据库列的情况。
问题是只执行了方法setIsPurchased,并且SQL表中的标志is_purchase更改为true,但是下一行setPurchasedDate必须设置当前时间并没有执行。来自数据库的响应是Mono<Void> 类型。
fun purchase(uuid: UUID, request: PurchaseInternalRequest) =
extraProductTransactionService.findTransactionByUuid(uuid)
.doOnNext { it.validateNotPurchased() }
.flatMap { purchaseViaSupplier(it, request) }
.flatMap { extraProductTransactionService.setIsPurchased(uuid) }
.flatMap { extraProductTransactionService.setPurchasedDate(uuid) }
.onErrorMap(Exception::class.java) { Exception(it.status) }
.then()
这两种方法的查询很简单,如下所示:
对于setIsPurchased:
update extra_product_transactions SET is_purchased = 1 where uuid = :uuid
对于setPurchasedDate:
update extra_product_transactions SET purchased_date = CURRENT_TIMESTAMP where uuid = :uuid
【问题讨论】:
标签: sql kotlin sql-update webclient flatmap