CMIS关系->按关系类型的对象列表(文档或文件夹)

时间:2019-05-31 08:22:03

标签: relationship cmis

早上好。

我在自定义模型中创建了几种类型的关系。 使用CMIS,有什么方法可以按类型搜索关联吗?为了获得使用此关联的所有源或目标文档或文件夹?

我评估了CMIS中查询的使用,以便获取文档的ID,但是如果我很了解,就不可能在关系中使用查询。

例如,我有4个进程A; B,C和D,每个文件都有多个关联。

过程A ---->关系类型---> sc.fatura

流程B ---->关系类型---> sc.contrato

过程C ---->关系类型---> sc.acta

过程D ---->关系的类型---> sc.fatura

搜索合同时,将获取与流程B相关的所有文档。搜索sc.fatura时,将获取流程A和D中的所有文档。

是否可以使用CMIS做类似的事情?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

通常,在过滤结果时,您将尝试使用OperationContext。我认为可能有一种方法可以让OC过滤为特定的关系类型,但是看起来并不像这样。因此,我认为您最好的办法就是自己检查关系的类型ID来对其进行过滤,如下所示:

Session session = getSession();

// Dump the object's associations
OperationContext oc = new OperationContextImpl();
oc.setIncludeRelationships(IncludeRelationships.SOURCE);

Document sourceDoc = (Document) session.getObject(session.createObjectId(sourceObjectId), oc);
List<Relationship> relList = sourceDoc.getRelationships();
System.out.println("Associations of objectId: " + sourceObjectId);
for (Relationship rel : relList) {
    // In this example I only want relationships of type sc:exampleRel1
    if ("R:sc:exampleRel1".equals(rel.getRelationshipType().getId())) {
        System.out.println("    " + rel.getTarget().getId());
    }
}