我在 RIAK 上存储 Person POJO(4 个字符串字段 - id、name、lastUpdate、Data),然后尝试使用 MapReduce 获取这些对象。
我的做法与 Basho 文档非常相似:
BucketMapReduce m = riakClient.mapReduce("person");
m.addMapPhase(new NamedJSFunction("Riak.mapByFields"), true);
MapReduceResult result = m.execute();
Collection<Person> tmp = result.getResult(Person.class);
调用 Person 的 String 构造函数:
public Person(String str){}
(我必须有这个构造函数,否则我会因为它丢失而出现异常)在那里我将对象作为字符串 - 一个字符串中的对象字段带有一个奇怪的分隔符。
为什么我没有将对象自动转换为我的 POJO?我真的需要遍历字符串并反序列化它吗?我做错了什么吗?