2

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

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

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

4

2 回答 2

3

您可以使用 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 来公开此功能。

于 2012-10-19T22:48:01.227 回答
1

您可以使用 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() 不返回任何内容

于 2012-12-15T12:16:44.703 回答