【发布时间】:2019-03-08 01:41:22
【问题描述】:
我正在使用 datastax object mapper 和 accessor 将数据插入到我的 cassandra 表中。在链接的文档中,它说返回类型规范会影响查询的执行方式。我希望查询异步执行,所以我选择使用ResultSetFuture:
@Accessor
interface MyTableAccessor {
@Query("INSERT INOT MY_TABLE " +
"SET value = :v " +
"WHERE $ID = :id ")
fun insertValue(@Param("v") value: String, @Param("id") id: String): ResultSetFuture
}
我的插入调用是:
val id = ...
val insertFutures = myList.map {
myTableAccessor.insertValue(it, id)
}
我还为这些期货添加了回调:
insertFutures.forEach {
Futures.addCallback(it, MyCallback(stats, tags))
}
其中MyCallback 实现FutureCallback 接口。我结束通话:
return Futures.inCompletionOrder(insertFutures)
.map { it.get() }
这会返回给我List<ResultSet>。
但我想为插入调用返回一个Boolean,以表明插入操作成功。我不确定如何使用返回的 List<ResultSet> 来做到这一点。
【问题讨论】:
标签: cassandra kotlin datastax future objectmapper