Riak Link商店与java

时间:2013-10-19 14:33:34

标签: java riak

我想使用java在数据库中存储带有链接的Riak Pojo对象。虽然字段类型是Collection <RiakLink>,但它会继续抛出相同的异常“riak links field必须是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必须 是com.basho.riak.client.convert.reflect.AnnotationCache.get(AnnotationCache.java:56)的集合<RiakLink>

请给我一个帮助 感谢

1 个答案:

答案 0 :(得分:1)

我在客户端的当前1.1.3和1.4.2版本中都测试了这个,但无法重现此问题。

此外,实际上还有unit test that ensures this works

查看AnnotationCache的历史记录,我找不到有关此问题的地方,因为它是在大约两年前创建的,因此排除您使用旧版本的客户端错误。

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