0

Spring Source を介して RIAK プロジェクトに取り組み始めました。それらの仕様によれば、オブジェクト間のリンクとその後のリンクウォーキングは非常に簡単です。

2 つのオブジェクトを保存し、それらをリンクしてからデータを取得しようとしています。

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]]

リンク操作がソースから値を削除する理由は何ですか? リンクの後にソース値を (再度) 設定しようとすると、リンクが削除されます...

ありがとう、オベド。

4

2 に答える 2

2

Riakでは、リンクとデータを1回の操作で保存する必要があります。(現時点では)一方を他方なしで更新することはできません。

したがって、リンクを設定するときはいつでも、操作でデータを書き戻す必要があります。Springアダプターがそれを考慮に入れているかどうかはわかりません。これについてRiakとSpringの開発者の間でいくつかのメッセージを見ましたが、まだ修正されているかどうかはわかりません。

しかし、いずれにせよ、私はSpringではなくネイティブのRiakJavaクライアントを使用する傾向もあります。

于 2012-09-24T07:03:01.727 に答える
0

スプリングアダプターを廃止することを決定しました。十分なサポートがないようです。代わりにRIAKJavaクライアントを使用します。誰かがそうではないと思いますか?

于 2012-08-20T08:31:51.813 に答える