【问题标题】:LinkWalk in RIAKRIAK 中的 LinkWalk
【发布时间】:2012-07-08 15:00:04
【问题描述】:

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

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

谢谢, 过年了。

【问题讨论】:

    标签: java riak


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-14
        相关资源
        最近更新 更多