Riak链接存储与java
我想使用java在数据库中存储一个带有链接的Riak Pojo对象。即使字段类型是CollectionRiak链接存储与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
,它仍会抛出相同的异常“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);
}