我有一个列系列,我正在使用复合键。我的一个复合键是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)
任何人都可以帮我解决这个问题。
任何帮助将不胜感激。
提前完成。
萨勒曼
答案 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();
}
但这是一种不好的做法