Riak链接存储与java

Riak链接存储与java,java,riak,Java,Riak,我想使用java在数据库中存储一个带有链接的Riak Pojo对象。即使字段类型是Collection,它仍会抛出相同的异常“riak links字段必须是Collection” 代码: Pojo类{ public String name; @RiakKey public String key; @RiakLinks @JsonIgnore public Collection<RiakLink> collection = new ArrayList<RiakLink&g

我想使用java在数据库中存储一个带有链接的Riak Pojo对象。即使字段类型是Collection
,它仍会抛出相同的异常“riak links字段必须是Collection

代码: Pojo类{

public String name;

@RiakKey
public String key;

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

异常:线程“main”中的异常java.lang.RuntimeException:java.lang.IllegalArgumentException:riak链接字段必须 be集合
位于com.basho.riak.client.convert.reflect.AnnotationCache.get(AnnotationCache.java:56)

请给我一个帮助
谢谢

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

此外,实际上还有一个

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


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

oops。。!thanx它可以工作。我可能使用了一个旧客户端,它甚至没有编译单元测试。我切换到“”并且它工作得很好。谢谢再说一次,事实上我刚刚知道发生了什么,那是我的错。问题是有3个RiakLink&我使用的是com.basho.riak.client.http.RiakLink,但是com.basho.riak.client.RiakLink没有错误
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);
}