我在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?我真的需要遍历字符串并反序列化吗?我做错什么了吗?
您正在使用的JS函数无法执行您认为的工作:)它基于具有特定值的字段选择对象,您必须提供该特定值作为阶段的参数。
我认为您正在寻找的是mapValuesJson
可以做您想做的事。
另外,您的POJO中根本不需要构造函数。
下面的代码应该为您指明正确的方向(显然,这非常简单,POJO中的所有公共字段都没有注释):
public class App {
public static void main( String[] args ) throws IOException, RiakException
{
IRiakClient client = RiakFactory.httpClient();
Bucket b = client.fetchBucket("test_mr").execute();
b.store("myobject", new Person()).execute();
IRiakObject o = b.fetch("myobject").execute();
System.out.println(o.getValueAsString());
BucketMapReduce m = client.mapReduce("test_mr");
m.addMapPhase(new NamedJSFunction("Riak.mapValuesJson"), true);
MapReduceResult result = m.execute();
System.out.println(result.getResultRaw());
Collection<Person> tmp = result.getResult(Person.class);
for (Person p : tmp)
{
System.out.println(p.data);
}
client.shutdown();
}
}
class Person
{
public String id = "12345";
public String name = "my name";
public String lastUpdate = "some time";
public String data = "some data";
}
我将上面的fetchXml与新的客户端api引用一起使用,如下所示: 我阅读的文档(https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-webapi/retrievemultipleRecords)指出,第二个参数是options,如果是fetchXml
如果使用的两个数字和运算符存储在变量中(用户输入),如何返回计算结果。 我正在创建一个简单的计算器,并试图输出“Number”“Operator”“Number2”的答案,根据用户输入的内容,答案可以是任何内容。 当输入这些数字和运算符时,输出返回“5 5=5 5”,我试图返回“5 5=10”。
我有一个Java服务器应用程序,它通过TLS从GRPC客户端获取数据并在服务器上处理。现在我想使用多个客户端。要向客户端分配接收到的事件,我想读取客户端证书并使用证书的DN分配事件。如何获取客户端证书? 我发现这个构建服务器:https://github.com/grpc/grpc-java/blob/master/SECURITY.md#mutual-tls 然后你应该实现一个服务器拦截器 }
问题内容: 有没有办法在Node.js上找到客户端的mac地址?我一直在搜索它,但是我发现了node- sigar项目,但是它没有用,因为它引发了“找不到模块./build/Release/sigar”错误。 问题答案: 除非您的代码与客户端在同一LAN段上运行,否则您将无法获取客户端的MAC地址。您可能需要使用命令行工具或本机支持才能获得本地LAN网段上的地址。 对于nodejs:https :
问题内容: 我正在尝试使用PDO从表中检索数据,只是我似乎无法向浏览器输出任何内容,只是得到了一个纯白页。 问题答案: 例。 这是您的dbc类 您的PHP页面:
问题内容: 您好,当没有匹配的学生时,我正在尝试犯一个错误…它将以这种方式显示, 并且我希望列名保持不变,但仍无法弄清楚…可以有人告诉我这是否是对?? 这是我的函数…并且在其中添加错误的地方添加了注释…但是我不知道如何获取列名 我这样尝试,但仍然给了我NULL!该代码在以下 问题答案: ResultSetMetaData metaData = resultSet.getMetaData(); in