我想將Cassandra keyspace/columnfamily行轉換爲JSON字符串。我當前的代碼(片段):如何使用Hector檢索Cassandra keyspace/columnfamily中的密鑰列的名稱?
RangeSlicesQuery<K, N, V> rangeSlicesQuery = HFactory
.createRangeSlicesQuery(this.keyspace, this.kSerializer, this.nSerializer, this.vSerializer)
.setColumnFamily(this.columnFamily)
.setRange(null, null, false, 100)
.setRowCount(1000);
this.results = this.rangeSlicesQuery.execute();
this.resultRows = this.results.get();
this.resultRowsIterator = this.resultRows.iterator();
Row<K, N, V> row = this.resultRowsIterator.next();
從該行中,我可以很容易地得到所有的列名/值(我用的是傑克遜JSON API來創建JSON):
List<HColumn<N, V>> columns = row.getColumnSlice().getColumns();
for(HColumn<N, V> column : columns) {
node.put(column.getName().toString(), column.getValue().toString());
}
System.out.println(node.toString());
我的問題是,我如何獲得關鍵列名稱?我知道我可以做得到該行的鍵值:
row.getKey();
但我沒有發現任何方式拿到鑰匙列的名稱,例如,像row.getKeyColumnName()
。我試過看KeySpaceDefinition,ColumnFamilyDefinition,ColumnDefinition和ColumnFamilyTemplate。沒有人似乎有這種能力(雖然也許有一個查詢可以針對模板運行?)
行按其名稱由其鍵和列標識。也許你可以澄清你的意思是「鍵列」的名字? –
包含KEY值的列的名稱。例如,它可以是「id」,也可以是「UUID」 - 它不存在於我的命令生成的HC列的值中。 –