Я хочу сделать запрос с «динамическими» свойствами из моего приложения Java с помощью nuxeo 8.10.
Вот декларация моего 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>
На мой сервер Nuxeo есть запрос «Получить»:
https:xxx/nuxeo/site/api/v1/search/lang/NXQL/execute?query=SELECT * FROM Document WHERE ecm:fulltext = 'test'&properties=TestDocumentProperties, dublincore
Когда я выполняю этот запрос прямо из своего браузера, результат содержит все свойства «dublincore» и «TestDocumentProperties»:
{
"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",
...
},...
}
Итак, я хочу выполнить запрос nuxeo nxql из своего Java-приложения с тем же параметром. Раньше я выполнял только запрос из своего java-приложения без параметра "свойства" с этим кодом:
return this.nuxeoClient.repository().query("SELECT * FROM Document WHERE ecm:fulltext = 'test'");
Но с помощью метода «запрос» из репозитория невозможно указать свойства для извлечения. Итак, сегодня я пытаюсь использовать этот код:
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();
К сожалению, результат получен неправильно, в моем ответе нет свойств «dublincore», но у меня есть «TestDocumentProperties». Если я удалю «TestDocumentProperties» в списке параметров свойств выборки, ответ не изменится...
Можете ли вы помочь мне исправить этот код или указать мне альтернативу?
Спасибо