是否可以通过GUID访问节点?

时间:2012-10-07 11:17:04

标签: jackrabbit cq5 sling

是否可以通过SLING查询按GUID访问整个节点?

我知道可以通过GUID进行搜索,但这意味着在进行搜索之后我们必须执行其他查询来获取节点。

我想获得一个只有一个查询的节点。

2 个答案:

答案 0 :(得分:2)

您可以使用java.jcr.Session.getNodeByIdentifier

以编程方式访问节点。

http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/Session.html#getNodeByIdentifier(java.lang.String

如果您希望能够通过HTTP请求访问它,那么创建一个可以公开此功能的servlet。

答案 1 :(得分:0)

您可以使用XPATH查询(例如

)通过UUID获取节点
/jcr:root//*[@jcr:uuid='b1e1d3c3-983c-33d6-811c-18d2a8824e03']

node = Session.getNodeByIdentifier(String id);

这里有一个很好的代码示例: Jackrabbit Running Queries against UUID

您也可以尝试

propertyIterator = node.getReferences();

这似乎依赖于mix:referenceable,对于您的节点可能不是这样 Javadoc:http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/Node.html#getReferences() 相关问题:Jackrabbit - node.getReferences() not returning anything