Просто используйте Object Mapper для таких вещей - его нет в ядре драйвера, поэтому вам нужно добавить еще одну зависимость в ваш файл сборки. После этого вы можете отображать классы POJO непосредственно в / из таблиц Cassandra.
@Table(name = "t4", keyspace = "test")
public class Test4Data {
@PartitionKey
int id;
@ClusteringColumn
@Column(name = "c")
int clCol;
@Column(name = "t")
String text;
// ... getters/setters, etc.
}
MappingManager manager = new MappingManager(session);
Mapper<Test4Data> mapper = manager.mapper(Test4Data.class);
Test4Data test4Data = mapper.get(0, 1);
// output as JSON, etc.
Если вам нужно работать с несколькими записями, например, запрашивать только по ключу раздела и т. Д., Тогда вам нужно использовать Accessors , например:
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM user")
Result<User> getAll();
}
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
Result<User> users = userAccessor.getAll();
, а затем перебрать результаты ...
P.S. Но вы можете получить JSON от Кассандры напрямую, используя SELECT JSON ...
( doc , пример ), хотя у вас меньше контроля над форматированием таких вещей, как дата / время.