Java 卡桑德拉-1.1.6和赫克托-1.1.4 Api

Java 卡桑德拉-1.1.6和赫克托-1.1.4 Api,java,cassandra,bigdata,hector,Java,Cassandra,Bigdata,Hector,我有一个列族,在其中我使用复合键。我的一个复合键是UUID,另一个键是字符串,我在其中传递空值。早些时候,我使用的是hector-0.8.0,我的代码运行良好。但是现在我想将我的hector api升级到最新版本,并且它不接受空值 try { Composite key = new Composite(); key.addComponent("key1", strSerializer); key.addComponent(null, str

我有一个列族,在其中我使用复合键。我的一个复合键是UUID,另一个键是字符串,我在其中传递空值。早些时候,我使用的是hector-0.8.0,我的代码运行良好。但是现在我想将我的hector api升级到最新版本,并且它不接受空值

    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.motory.cassandra.hectorClient.Test.main(Test.java:29)

有人能帮我解决这个问题吗

任何帮助都将不胜感激

提前准备好


Salman

复合密钥永远不能为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();
}

但是这是一种不好的做法

amit你能告诉我你在我的代码中做了哪些更改吗。因为我找不到任何更改。此代码在旧版本中运行良好。谢天谢地,在做了一些更改之后,我尝试了其他一些方法,并获得了成功。我给出了一个空字符串(“”),它与最新版本一起工作。@user3568568抱歉,我忘记了将null转换为“null”,我编辑了答案,请检查它