Java 卡桑德拉-1.1.6和赫克托-1.1.4 Api
我有一个列族,在其中我使用复合键。我的一个复合键是UUID,另一个键是字符串,我在其中传递空值。早些时候,我使用的是hector-0.8.0,我的代码运行良好。但是现在我想将我的hector 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
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”,我编辑了答案,请检查它