2012-10-07 73 views
1

是否可以通過SLING查詢通過GUID訪問整個節點?是否可以通過GUID訪問節點?

我知道可以通過GUID進行搜索,但這意味着在執行搜索之後,我們必須執行其他查詢來獲取節點。

我想只有一個查詢得到一個節點。

+1

我不知道,我想直接使用的GUID,如果它是在所有可以避免的,爲什麼不是用這些節點的路徑呢?如果您發佈您正在使用的查詢,這也可能有所幫助。 – antonyh

+0

問題是節點路徑可能會隨着應用程序的發展而改變。 GUID永遠不會改變... –

+0

您是否設法找到解決方案?另外,當內容被激活/複製/發佈時,GUID是否一樣?我的印象是它是一個實例本地標識符,並且不在存儲庫之間共享。 – antonyh

回答

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:可引用的,您的節點可能不是這種情況。
的Javadoc:http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/javax/jcr/Node.html#getReferences() 相關問題:Jackrabbit - node.getReferences() not returning anything

相關問題