早上好。
我在自定义模型中创建了几种类型的关系。 使用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做类似的事情?
感谢您的帮助
答案 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());
}
}