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 要求链接和数据存储在一个操作中。您无法在没有另一个的情况下更新一个(目前)。

因此,无论何时设置链接,操作都必须写回数据。我不知道 Spring 适配器是否考虑到了这一点。我确实在 Riak 和 Spring 开发人员之间看到了一些关于此的消息,但不知道是否已修复任何问题。

但无论如何,我也倾向于使用原生的 Riak Java 客户端而不是 Spring。

于 2012-09-24T07:03:01.727 回答
0

已决定放弃弹簧适配器。它似乎没有足够好的支持。改用 RIAK java 客户端。有人不这么认为吗?

于 2012-08-20T08:31:51.813 回答