1

SliceQuery< Long, String, String > 表示 keytype 是 long,列名是 string,列值是 string。当我使用 QueryResult < ColumnSlice< String, String >> 执行切片查询时,我可以获得所有列,但是键很长,因此必须有一个值为 long 类型的列。在这里看到类型安全如何工作对我来说有点令人困惑(因为查询结果将获得一个列类型)。此外,如果有一列的值类型不是字符串,那么一定会出现问题。

如何拥有可用于查询不同值类型列的通用切片查询?

PS:我是 cassandra/hector 的新手。

谢谢

4

1 回答 1

1

几乎。第一种类型是您指出的行键的类型,但行键不存储为列。行键存储在其他一些特殊的地方。这是来自关系数据库世界(如我)的人们绊倒的那些陷阱之一。

至于如何管理不同类型的列值,有两种方法。首先,将值存储为字节数组并自行序列化。其次,您关闭列名以告诉您正在处理的列 - 以及因此的值类型。一旦您知道正确的类型,您就可以使用适当的序列化器将字节值反序列化为正确类型的变量。对于您自己的复杂对象和特殊类型,您可以编写自己的序列化程序。

于 2012-08-23T22:11:53.507 回答