Как разобрать Cassandra Row в тип Java POJO - PullRequest
0 голосов
/ 15 апреля 2019

Я использую dasastax cassandra.Я пытаюсь разобрать результаты cassandra в java-тип и вернуть в ответе json.Здесь каждая строка имеет тип VendorToken.class (с полями vendorId, vendorName). Как выполнить синтаксический анализ строки в типе VendorToken.class, используя jackson ObjectMapper?

ResultSet results = getToken(vendorId);
for(Row row : results) {
    System.out.println(row);   // Output is: Row[vendorId, testVendorName]
}

Или есть какой-либо другой способ анализа в json?Я хочу вернуться к пользователю в формате JSON.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 15 апреля 2019

Просто используйте 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 , пример ), хотя у вас меньше контроля над форматированием таких вещей, как дата / время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...