У меня есть пара тестовых функций, которые я написал, чтобы проиллюстрировать проблему (или, по крайней мере, некоторое поведение, которое я не понимаю). Я просто делаю некоторые основные запросы CMIS в репозитории сообщества Alfresco 4.2.e, но получаю неожиданные результаты в зависимости от того, использую ли я session.query() или session.queryObjects(). В частности, объекты queryObject не возвращают свойства для настраиваемых аспектов. Оба возвращают отношения/ассоциации в порядке. Я что-то делаю неправильно, или это ошибка? Я использую opencmis 0.10 и URL CMIS 1.1.
private static Collection<Document> testCmisObjectQuery(Session session) {
List<Document> rv = new LinkedList<>();
OperationContext opCon = session.createOperationContext();
opCon.setLoadSecondaryTypeProperties(true);
opCon.setIncludeRelationships(IncludeRelationships.BOTH);
ItemIterable<CmisObject> cmisObjs =
session.queryObjects("D:af:insuringFormInstance", null, false, opCon);
for (CmisObject o : cmisObjs) {
Document d = (Document) o;
rv.add(d);
printDocProps(d);
}
return rv;
}
private static Collection<Document> testCmisQuery(Session session) {
List<Document> rv = new LinkedList<>();
String queryString = "SELECT cmis:objectId FROM af:insuringFormInstance";
OperationContext opCon = session.createOperationContext();
opCon.setIncludeRelationships(IncludeRelationships.SOURCE);
ItemIterable<QueryResult> results = session.query(queryString, false);
for (QueryResult qResult : results) {
String objectId = qResult.getPropertyValueByQueryName("cmis:objectId");
Document doc = (Document) session.getObject(session.createObjectId(objectId),opCon);
printDocProps(doc);
rv.add(doc);
}
return rv;
}
Похоже, у вас отсутствует соединение, как в
select d.*, o.* from cmis:document as d join cm:ownable as o on d.cmis:objectId = o.cmis:objectId
Посмотрите на https://wiki.alfresco.com/wiki/CMIS#Aspect_Query для получения дополнительной информации.