我需要這種形式的JCR SQL查詢CQ5 JCR查詢:在多條路徑
select * from jcr:content where cq:template like '%myTemplate%' and (jcr:path like '%path1%' or jcr:path like '%path2%')
但我得到一個異常說「不正確地使用財產JCR的:道路」是否有一個快速的解決方法這個 ?根據用戶的選擇,每次搜索的路徑數量可能會有所不同。
我需要這種形式的JCR SQL查詢CQ5 JCR查詢:在多條路徑
select * from jcr:content where cq:template like '%myTemplate%' and (jcr:path like '%path1%' or jcr:path like '%path2%')
但我得到一個異常說「不正確地使用財產JCR的:道路」是否有一個快速的解決方法這個 ?根據用戶的選擇,每次搜索的路徑數量可能會有所不同。
正如您已經注意到的,在JCR查詢中不可能使用多個路徑比較。這裏有幾個選項:
jcr:content
節點,標記您感興趣的頁面並使用它代替路徑。path1
和path2
子樹而不是查詢它們。我在CQ的查詢工具中嘗試了下面的查詢,它工作。
SELECT * FROM [cq:PageContent] WHERE [cq:PageContent].[cq:template] LIKE '%content%' AND (isdescendantnode('/content/geometrixx/fr/') OR isdescendantnode('/content/geometrixx/en/'))
但ISDESCENDANTNODE需要一個絕對路徑,我認爲相對的路徑不工作。
SQl2在同一時間在不同的路徑上工作。以上@Rakhi的例子似乎有效。您必須記住,如果所有的後代路徑條件未組合在括號中,則應將所有不同的路徑放在一個括號中,查詢開始發出不良結果。像(isdec(path1)或/和isdec(path2))並不像isdesc(path1)或/和idesc(path2) –
是的..我注意到...它不允許查詢多個路徑。所以我只是使用它們的父對象進行查詢,然後迭代結果列表以篩選出期望的結果。謝謝 –