我有以下条件更新返回false。但是,当我在数据库中检查时,我试图更新的列实际上已更新。
def deliver(d: Delivery, placedDate: java.time.LocalDate, locationKey: String, vendorId: String, orderId: String, code: String, courierId: String, courierName: String) = {
update.
where(_.placedDate eqs placedDate).
and(_.locationKey eqs locationKey).
and(_.vendorId eqs vendorId).
and(_.orderId eqs orderId).
modify(_.status setTo "DELIVERED").
and(_.deliveredTime setTo LocalDateTime.now()).
onlyIf(_.status is "COLLECTED").and(_.deliveryCode is code).future().map(_.wasApplied)
}
谢谢
答案 0 :(得分:0)
这是幻像驱动程序的传递值,这意味着下面的Datastax Java Driver就是生成它的那个。如果你想跟进,你能否在GitHub上发一个完整的错误?
与此同时,如果您只是尝试测试,我会建议您不要依赖wasApplied
,而是直接阅读。
您可以通过回读生成一些测试数据和更新的值,执行更新,并比较Cassandra中的最终结果。 wasApplied
有条件批量更新已知问题,但除此之外,我希望这可以解决。