2013-10-19 43 views
0

我想存储一个Riak Pojo对象与数据库中的链接使用Java。尽管字段类型为集合<RiakLink>,但它仍会抛出相同的异常“riak链接字段必须为集合<RiakLink>”。Riak链接存储与java

代码: 类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); 
} 

}

异常:异常在线程 “主要” 的java.lang。 RuntimeException:java.lang.IllegalArgumentException:riak链接字段必须为 是收集<RiakLink>在com.basho.riak.client.convert.reflect.AnnotationCache.get(AnnotationCache.java:56)

请给我一个帮助 感谢

回答

1

我已经在这两个测试这目前的1.1.3和1.4.2版本的客户端并不能重现此问题。

另外,实际上有一个unit test that ensures this works

查看AnnotationCache的历史记录,我无法找到自从它创建于大约两年前以来有过这样一个错误的地方,因此排除了使用具有错误的旧版客户机的问题。

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

+0

哎呀..! thanx它的作品。我可能会使用一个较老的客户端,它甚至没有编译单元测试。我切换到“http://riak-java-client.s3.amazonaws.com/riak-client-1.4.2-jar-with-dependencies.jar”,它完美的工作。谢谢...再次.. – maamaa

+0

其实我只是想清楚发生了什么,这是我的错误。问题是有3个RiakLinks&我正在使用com.basho.riak.client.http.RiakLink,但没有与com.basho.riak.client.RiakLink错误 – maamaa

相关问题