0

我想使用java在数据库中存储一个带有链接的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 链接字段必须是<RiakLink> com.basho.riak.client.convert.reflect.AnnotationCache.get 的 Collection(AnnotationCache.java:56)

请帮帮我谢谢

4

1 回答 1

1

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

此外,实际上还有一个单元测试可以确保它有效

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

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

于 2013-10-19T17:17:19.807 回答