【问题标题】:Riak Link store with javaRiak 链接存储与 java
【发布时间】:2013-10-19 14:33:34
【问题描述】:

我想使用 java.util 将带有链接的 Riak Pojo 对象存储在数据库中。即使字段类型是 Collection <RiakLink>,它仍然抛出相同的异常“riak links field must be Collection <RiakLink>”。

代码: Pojo 类{

public String name;

@RiakKey
public String key;

@RiakLinks
@JsonIgnore  
public Collection<RiakLink> collection = new ArrayList<RiakLink>();

}

公共类 Riak2 {

public static void main(String[] args) throws RiakException {

    IRiakClient client = RiakFactory.httpClient();

    Pojo p = new Pojo();
    p.name = "Pojo"; 
    p.key = "First";
    p.collection.add(new RiakLink("list","Second","next"));

    client.fetchBucket("list").execute().store(p);
}

}

异常:线程“main”中的异常 java.lang.RuntimeException: java.lang.IllegalArgumentException: riak links field must com.basho.riak.client.convert.reflect.AnnotationCache.get(AnnotationCache.java:56) 上的集合&lt;RiakLink&gt;

请帮帮我 谢谢

【问题讨论】:

    标签: java riak


    【解决方案1】:

    我已在当前​​ 1.1.3 和 1.4.2 版本的客户端中对此进行了测试,但无法重现此问题。

    另外,其实还有一个unit test that ensures this works

    查看AnnotationCache 的历史记录,我找不到与此相关的错误,因为它是在大约两年前创建的,因此排除了您使用存在错误的旧版本客户端的可能性。

    鉴于此,我建议重建您的项目/重新检查您在 Q 中列出的代码是否是实际使用的代码。如图,没有问题。

    【讨论】:

    • 哎呀..!谢谢它的工作原理。我可能使用了一个较旧的客户端,它甚至没有编译单元测试。我切换到“riak-java-client.s3.amazonaws.com/…”,它运行良好。谢谢......再次......
    • 其实我只是弄清楚发生了什么,这是我的错误。问题是有 3 个 RiakLink,我使用的是 com.basho.riak.client.http.RiakLink 但 com.basho.riak.client.RiakLink 没有错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    相关资源
    最近更新 更多