3

comment_keyとの 2 つの列の複合キーを使用して列ファミリー (CF) をクエリしようとすると問題が発生しますprattle_key

CF の定義は次のとおりです。

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 ユーティリティを使用すると、ColumnFamily の 3 行すべてを問題なく選択できるので、そこにデータがあることがわかります。

どんな援助でも大歓迎です!ありがとう!

4

1 に答える 1