java - RIAK 中的 LinkWalk

标签 java riak

我已经开始通过 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]]

知道为什么链接操作会从源中删除该值吗? 如果我尝试在链接后(再次)设置源值,则链接将被删除...

谢谢, 奥维德。

最佳答案

Riak 要求链接和数据存储在一个操作中。您无法在没有另一个的情况下更新其中一个(目前)。

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

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

关于java - RIAK 中的 LinkWalk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11384068/

相关文章:

haskell - 何时(何时不)定义 Monad

riak - 在异构集群上运行 Riak

ubuntu - 节点 'riak@192.168.1.218' 未响应 ping

java - Elasticsearch 特殊字符问题

java - 如何检测变量是否已更改?

使用 JSch 进行 Java 文件传输

java - 尝试绘制多个多边形会导致错误

Java进程IO

linux - 在 riak 中更改 n 值(重复值)未完成