无法从cassandra db

时间:2016-08-24 14:35:08

标签: cassandra blob cql

我的cassandra表定义如下:


    Create table userInfo(
        mandatory_info1 int PRIMARY KEY;
        mandatory_info2 float;
        mandatory_info3 int;
        additional_info1 int;
        additional_info2 String;
        additional_info3 double;
    );

这里有3个additional_info字段将用于某些特定用户。

我想使用blob类型的单个字段来存储此附加信息。(这些字段的名称对于普通用户来说似乎很奇怪)。所以,我的表定义如下:


    Create table userInfo(
        mandatory_info1 int PRIMARY KEY;
        mandatory_info2 float;
        mandatory_info3 int;
        additional_info blob;
    );

我创建了以下java类,它将包含其他信息:


    class Additional_Info{
        private int additional_info1;
        private String additional_info2;
        private double additional_info3;

        //setter and getter method goes here
    }

然后我可以通过序列化Additional_Info类型的对象将用户的附加信息放在blob字段中。而且 反序列化此blob字段可以重新获取其他信息。

但是,如果我在班上添加另一个addition_info(比如:additional_info4)。我的班级变得与之不相容 先前插入的blob值。结果我无法检索以前的记录(发生java.io.InvalidClassException)。如果这也会发生 member varibles此类的名称已更改。

是否有其他最佳方法可以在cassandra DB中存储添加字段(而不是为每个字段使用不同的列 附加领域)。如果不是,我怎样才能克服上述问题。

0 个答案:

没有答案