Я использую преобразователь объекта datastax и 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>
.