Что, где и как я должен что то зарегестрировать как кодек для пользовательского типа
определил тип
@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]
При использовании деклараций, лучше использовать 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 (не знаю как перевести)...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можно ли как-то в startActivityForResult() вывести откуда я хочу выбрать видео, либо записать с камеры либо выбрать из галереи? Сейчас только могу открыть...