2012-07-08 98 views
0

我已經開始通過Spring Source開發RIAK項目。 根據它們的規範鏈接對象然後linkwalking是非常簡單的。RIAK中的LinkWalk

我節省了兩個對象,它們之間的連接,然後嘗試檢索數據:

MyPojo p1 = new MyPojo("o1", "m1"); 
MyPojo p2 = new MyPojo("o2", "m2"); 

riakManager.set(bucketName1, "k1", p1); 
riakManager.set(bucketName2, "k2", p2); 

riakManager.link(bucketName2, "k2", bucketName1, "k1", tagName); 

System.out.println(riakManager.get(bucketName1, "k1")); 
System.out.println(riakManager.linkWalk(bucketName1, "k1", "_")); 

的問題是鏈接後,源(「K1」)的內容被刪除,只鏈接保持不變。這是打印輸出:

null 
[MyPojo [str1=o2, str2=m2, number=200]] 

任何想法爲什麼鏈接操作從源刪除值? 如果我嘗試設置鏈接後的源值(再次),然後鏈接被刪除...

謝謝, oved。

回答

0

已決定放棄彈簧適配器。它似乎沒有足夠好的支持。 改爲使用RIAK java客戶端。 有人認爲不然?

2

Riak要求鏈接和數據存儲在一個操作中。如果沒有其他人(目前),則無法更新。

因此,無論何時您設置鏈接,操作也必須寫回數據。我不知道Spring適配器是否考慮到了這一點。我確實在Riak和Spring開發者之間看到了一些關於此的消息,但不知道是否有任何問題得到解決。

但無論如何,我也傾向於使用本地Riak Java客戶端而不是Spring。