多个路径中的CQ5 JCR查询

时间:2013-11-21 16:33:06

标签: cq5 aem jcr-sql2

我需要一个这种形式的JCR SQL查询:

select * from jcr:content where cq:template like '%myTemplate%' and ( jcr:path like '%path1%' or jcr:path like '%path2%')

但我得到一个例外,说“错误使用属性jcr:path”这是否有一个快速的解决方法?根据用户选择,每次搜索的路径数可能会有所不同。

2 个答案:

答案 0 :(得分:2)

我在CQ的查询工具中尝试了以下查询,但它确实有效。

SELECT * FROM [cq:PageContent] WHERE [cq:PageContent].[cq:template] LIKE '%content%' AND ( isdescendantnode('/content/geometrixx/fr/') OR isdescendantnode('/content/geometrixx/en/'))

但是ISDESCENDANTNODE需要一条绝对的路径,而我认为相对的路径是行不通的。

答案 1 :(得分:1)

正如您所注意到的,在JCR查询中使用多路径比较是不可能的。你有几个选择:

  1. 创建一些查询,每个路径一个。
  2. 向标记您感兴趣的网页的jcr:content节点添加一些自定义属性,并使用它而不是路径。
  3. 迭代path1path2子树而不是查询它们。