У меня возникли проблемы с запросом семейства столбцов (CF) с составным ключом из двух столбцов: comment_key
и prattle_key
.
Вот определение КФ:
CREATE TABLE comments (
comment_key text,
prattle_key text,
parent_key text,
depth int,
author text,
date_created timestamp,
body text,
PRIMARY KEY (comment_key, prattle_key)
) WITH
comment='' AND
caching='KEYS_ONLY' AND
read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
replicate_on_write='true' AND
compaction_strategy_class='SizeTieredCompactionStrategy' AND
compression_parameters:sstable_compression='SnappyCompressor';
Вот мой Java-код:
Composite key = new Composite();
key.addComponent(prattleKey, StringSerializer.get());
key.addComponent(commentKey, StringSerializer.get());
SliceQuery<Composite, String, String> query = HFactory.createSliceQuery(keyspace, CompositeSerializer.get(), StringSerializer.get(), StringSerializer.get());
query.setColumnFamily("comments").setKey(key).setColumnNames("parent_key", "body", "depth", "date", "author");
QueryResult<ColumnSlice<String, String>> queryResult = query.execute();
ColumnSlice<String, String> cs = queryResult.get();
Я получаю следующее сообщение об ошибке:
InvalidRequestException(why:Not enough bytes to read value of component 0)
Используя утилиту командной строки CQL, я могу просто выбрать все 3 строки в ColumnFamily, поэтому я знаю, что там есть данные.
Будем очень благодарны любой помощи! Спасибо!