2014-06-13 50 views
1

我得到了一個使用組合鍵的列族。我的一個組合鍵是UUID,另一個鍵是我傳遞NULL值的字符串。早些時候,我使用的是hector-0.8.0,我的代碼工作正常。但是現在我想將我的hector api升級到最新版本,並且它不接受NULL值。Cassandra-1.1.6和Hector-1.1.4 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(); 
    } 

以上是這是工作的罰款赫克託-0.8.2,但給人錯誤,當我使用赫克託 - 1.1.4

異常線程「main」顯示java.lang.NullPointerException代碼:無法能夠在me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:459) 處添加空分量 at me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:447) 在me.prettyprint.hector.api.beans.AbstractComposite.addComponent(AbstractComposite.java:438) at me.prettyprint.hector.api.beans.AbstractComposit e.addComponent(AbstractComposite.java:429) at com.impetus.cassandra.hectorClient.Test.main(Test.java:29)

任何人都可以幫助我解決這個問題。

任何幫助將不勝感激。

Thanx提前。

薩爾曼

回答

0

複合鍵不能爲空,但如果你想那麼複合鍵空試試這個,

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(); 
} 

,但它是一個不好的做法

+0

阿米特u能告訴我什麼樣的變化ü在我的代碼中創建。因爲我找不到任何改變。 –

+0

此代碼與舊版本正常工作。我嘗試了一些其他的方式,在做了一些改變後感激地獲得了成功,而不是空白字符串(「」),它與最新版本一起工作。 –

+0

@ user3568568抱歉,我忘記將Null轉換爲「null」,我編輯回答請檢查它 –