我想用"动态"提出请求使用nuxeo 8.10从我的Java应用程序中获取属性。
我的NuxeoDocument声明:
<schema name="TestDocumentProperties" src="data/TestDocumentProperties.xsd" prefix="test" />
<doctype name="TestDocument" extends="Document">
<schema name="dublincore"/>
<schema name="TestDocumentProperties"/>
</doctype>
有架构:
<xs:schema ...>
<xs:element name="summary" type="xs:string"/>
<xs:element name="content" type="xs:string"/>
</xs:schema>
有一个&#34; Get&#34;请求我的Nuxeo服务器:
https:xxx/nuxeo/site/api/v1/search/lang/NXQL/execute?query=SELECT * FROM Document WHERE ecm:fulltext = 'test'&properties=TestDocumentProperties, dublincore
当我直接从浏览器执行此请求时,结果包含&#34; dublincore&#34;的所有属性。和&#34; TestDocumentProperties&#34;:
{
"entity-type": "document",
"type": "TestDocument",
...
"properties": {
"test:summary": "test text to search in summary",
"test:content": "test text to search in content",
"dc:description": null,
"dc:language": null,
"dc:coverage": null,
"dc:valid": null,
"dc:creator": "xxx",
"dc:modified": "2017-12-13T16:28:38.44Z",
...
},...
}
所以,我想用我的Java应用程序用相同的参数执行nuxeo nxql请求。 之前,我只执行来自我的Java应用程序的请求,没有&#34;属性&#34;这段代码的参数:
return this.nuxeoClient.repository().query("SELECT * FROM Document WHERE ecm:fulltext = 'test'");
但是&#34;查询&#34;来自存储库的方法,无法指定要获取的属性。所以,今天,我尝试使用这段代码:
Map<String, Object> parameters = new HashMap<>();
parameters.put("query", "SELECT * FROM Document WHERE ecm:fulltext = 'test'");
parameters.put("properties", "TestDocumentProperties, dublincore");
return this.nuxeoClient.automation("Repository.Query").parameters(parameters).execute();
不幸的是,结果没有正确获取,我没有&#34; dublincore&#34;我的回复中的属性,但我有&#34; TestDocumentProperties&#34;。如果我删除&#34; TestDocumentProperties&#34;在获取属性参数列表中,响应没有变化......
您能帮助我更正此代码或指明我的替代方案吗?
感谢&#39; S
答案 0 :(得分:0)
根据nuxeo doc,您可以使用 setHeader(Constants.HEADER_NX_SCHEMAS 方法:
选择要返回的模式。$sheet->setColumnFormat(array(
'A' => '@'
));
foreach ($order_details as $key => $detail) {
$sheet->appendRow([(string)$detail->model->id_supplier, $detail->model->mintitle, $detail->qty, $detail->price, $detail->qty * $detail->price,]);
$sheet->setHeight($sheet->getHighestRow(), 45);
}
对于属性。如果我没记错的话,您可以设置要返回的特定属性:
return this.nuxeoClient.setHeader(Constants.HEADER_NX_SCHEMAS, "TestDocumentProperties,dublincore").automation("Repository.Query").parameters(parameters).execute();
或者你可能需要这样做:
parameters.put("properties", "dc:title,dc:description");
后者我不确定,希望它有所帮助。