2012-08-23 15 views
1

A SliceQuery < Long,String,String>表示鍵類型很長,列名稱是字符串,列值是字符串。當我使用QueryResult執行切片查詢時< ColumnSlice < String,String>>我可以獲取所有列,但是鍵很長,所以必須有一個值爲long類型的列。對我來說,看看類型安全是如何工作的(因爲查詢結果會得到一個列類型)有點令人困惑。 另外,如果有一個值不是字符串的值類型的列,則必須出現問題。使用不同的值類型讀取列

如何擁有一個可用於查詢不同值類型列的通用切片查詢?

P.S:我是cassandra/hector的新手。

謝謝

回答

1

差不多。第一種類型是您指出的行鍵的類型,但行鍵不存儲爲列。行鍵存儲在其他特殊的地方。這是那些來自關係數據庫世界(像我一樣)旅行的人的難題之一。

至於如何管理不同類型的列值,有一個雙管齊下的方法。首先,您將該值存儲爲字節數組並自行將其序列化。其次,您鍵入列名以告訴您正在處理的是哪一列 - 以及哪一種值類型。一旦知道了正確的類型,就可以使用適當的串行器將字節值反序列化爲正確類型的變量。對於您自己的複雜對象和特殊類型,您可以編寫自己的序列化程序。