gpt4 book ai didi

java - 通过路径获取 Alfresco NodeRef(实时、竞争条件安全)

转载 作者:行者123 更新时间:2023-12-01 20:51:55 35 4
gpt4 key购买 nike

我想获取存储在 Alfresco 中的文档(或空间)的 NodeRef。

我的代码是用 Java 编写的,在 Alfresco 中运行(例如在 AMP 中)。

我的代码需要针对竞争条件是安全的,例如它必须找到前一秒创建的节点。在此背景下,usual methods (基于搜索)无法使用。

怎么办?

最佳答案

您需要避免任何触及 SOLR 的内容,如 those APIs are only Eventually Consistent

具体来说,您需要一个基于 canned queries 的 API 。您的用例的主要是 NodeService.getChildAssocsNodeService.getChildByName 。一些FileFolderService也会立即生效

您最好的选择是将路径拆分为多个组件,然后对其进行递归/循环下降。根据您想要使用名称 (cm:name) 还是 QName(基于关联),您可以使用两种 NodeService 方法之一

例如(未完全测试...)

String[] parts = path.split("\\/");
NodeRef nodeRef = nodeService.getRootNode(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE);
for (String name : parts) {
NodeRef child = nodeService.getChildByName(nodeRef, ContentModel.ASSOC_CONTAINS, name);
if (child == null)
throw new Exception("Path part not found "+name+" in "+path+" at "+nodeRef);
nodeRef = child;
}
return nodeRef;

关于java - 通过路径获取 Alfresco NodeRef(实时、竞争条件安全),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43225467/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com