Cassandra-1.1.6和Hector-1.1.4 Api

时间:2014-06-13 09:19:06

标签: java cassandra bigdata hector

我有一个列系列,我正在使用复合键。我的一个复合键是UUID,另一个键是我传递NULL值的字符串。早些时候,我使用的是hector-0.8.0,我的代码工作正常。但是现在我想将我的hector api升级到最新版本并且不接受NULL值。

    try {
        Composite key = new Composite();
        key.addComponent("key1", strSerializer);
        key.addComponent(null, strSerializer);
        compMutator.addInsertion(key, "columnfamily", HFactory.createColumn("column1", "col2 value",HFactory.createClock(), strSerializer,strSerializer));
        compMutator.execute();
    } catch (HectorException e) {
        e.printStackTrace();
    }

上面是代码,它与hector-0.8.2一起正常工作但在我使用hector-1.1.4时出错。

线程“main”中的异常java.lang.NullPointerException:无法添加null组件     at me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:459)     at me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:447)     at me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:438)     at me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:429)     在com.impetus.cassandra.hectorClient.Test.main(Test.java:29)

任何人都可以帮我解决这个问题。

任何帮助将不胜感激。

提前完成。

萨勒曼

1 个答案:

答案 0 :(得分:0)

复合键永远不会为null,但是如果你想要复合键null,那么试试这个,

try {
    Composite key = new Composite();
    key.addComponent("key1", strSerializer);
    key.addComponent("null", strSerializer);
    compMutator.addInsertion(key, "columnfamily", HFactory.createColumn("column1", "col2 value",HFactory.createClock(), strSerializer,strSerializer));
    compMutator.execute();
} catch (HectorException e) {
    e.printStackTrace();
}

但这是一种不好的做法