CodecNotFoundException при запросе в cassandra

174
07 августа 2018, 05:50

Что, где и как я должен что то зарегестрировать как кодек для пользовательского типа

определил тип

@UDT(name = "bucket", keyspace = "us")
public class BucketType {
  @Field(name = "event_time")
  private Date eventTime;
  @Field(name = "product_id")
  private String productId;
  //setters and getters
}

структура таблицы

CREATE TABLE keyspace.shops (       
    user_id stext,              
    buckets list<frozen <bucket>>   
PRIMARY KEY (user_id));

Зависимости

    compile group: 'com.datastax.cassandra', name: 'cassandra-driver-mapping', version: '3.5.0'
    compile group: 'com.datastax.cassandra', name: 'cassandra-driver-core', version: '3.5.0'

Делаю запрос в cassandra

Session session = cluster.connect();
ResultSet resultSet = session.execute("select * from keyspace.shops;");
  resultSet.forEach(row -> {
  List<BucketType> list1 = row.getList(1, BucketType.class);
  }

Пробовал разные методы get, getValue, и индексы разные Выдает ошибку

   com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [ups.cart_add <-> com.test.entity.type.BucketType]
at com.datastax.driver.core.CodecRegistry.notFound(CodecRegistry.java:741) ~[cassandra-driver-core-3.5.0.jar:na]
at com.datastax.driver.core.CodecRegistry.createCodec(CodecRegistry.java:588) ~[cassandra-driver-core-3.5.0.jar:na]
at com.datastax.driver.core.CodecRegistry.findCodec(CodecRegistry.java:558) ~[cassandra-driver-core-3.5.0.jar:na]
Answer 1

При использовании деклараций, лучше использовать Mapper API, а не стандартные функции...  

Но можно работать и с результатом полученным через них, только надо добавить маппинг для самой таблицы shop (пусть это будет класс Shop, и враппер:

Mapper<Shop> mapper = manager.mapper(Shop.class);
ResultSet resultSet = session.execute("select * from keyspace.shops;");
Result<Shop> shops = mapper.map(resultSet);
...

Соответвтвующая документация...

Или можно сделать доступ через Accessors (не знаю как перевести)...

READ ALSO
Выбор видео startActivityForResult();

Выбор видео startActivityForResult();

Можно ли как-то в startActivityForResult() вывести откуда я хочу выбрать видео, либо записать с камеры либо выбрать из галереи? Сейчас только могу открыть...

173
JAXB unmarshall из списка в HashMap

JAXB unmarshall из списка в HashMap

Есть такой кусок xml файла:

198
map.containsKey возвращает false [дубликат]

map.containsKey возвращает false [дубликат]

На данный вопрос уже ответили:

192
Помогите сделать парсер txt ответа из itunes store

Помогите сделать парсер txt ответа из itunes store

Есть апи для запросов: https://wwwapple

168