是否可以通過SLING查詢通過GUID訪問整個節點?是否可以通過GUID訪問節點?
我知道可以通過GUID進行搜索,但這意味着在執行搜索之後,我們必須執行其他查詢來獲取節點。
我想只有一個查詢得到一個節點。
是否可以通過SLING查詢通過GUID訪問整個節點?是否可以通過GUID訪問節點?
我知道可以通過GUID進行搜索,但這意味着在執行搜索之後,我們必須執行其他查詢來獲取節點。
我想只有一個查詢得到一個節點。
您可以訪問編程方式使用此java.jcr.Session.getNodeByIdentifier
如果你希望能夠有通過HTTP請求訪問它,然後創建一個會暴露這個功能的servlet。
您可以使用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
我不知道,我想直接使用的GUID,如果它是在所有可以避免的,爲什麼不是用這些節點的路徑呢?如果您發佈您正在使用的查詢,這也可能有所幫助。 – antonyh
問題是節點路徑可能會隨着應用程序的發展而改變。 GUID永遠不會改變... –
您是否設法找到解決方案?另外,當內容被激活/複製/發佈時,GUID是否一樣?我的印象是它是一個實例本地標識符,並且不在存儲庫之間共享。 – antonyh