AEM JCR SQL2 查询查找包含特定组件的所有页面

问题描述 投票:0回答:3

我希望构建一个 sql2 jcr 查询来查找

/content
下包含此组件的所有页面,例如
/apps/platform/aem-core/components/content/form/form

我阅读了https://wiki.magnolia-cms.com/display/WIKI/JCR+Query+Cheat+Sheet并尝试了类似下面的内容

我目前的尝试类似于

SELECT * from [cq:Page] AS t WHERE t.contains('/apps/platform/aem-core/components/content/form/form')

但这行不通。请建议我一个示例来查找包含此组件的所有页面。谢谢

sql xpath aem jcr
3个回答
0
投票

正如 @awd 在评论中提到的,

QueryBuilder
提供了更好的功能。

SQL2
不过,这并没有那么糟糕,特别是对于那些倾向于 RDBMS 的人来说!

下面的查询应使用组件资源类型获取所有页面路径。

SELECT * FROM [cq:PageContent] AS WHERE IDESCENDANTNODE(s,'/content') AND CONTAINS(s.[sling:resourceType], '基础/组件/文本')

您必须使用方括号来表示其中包含命名空间的属性,例如:cq:template、sling:resourceType 等


0
投票

选择页面。* FROM [cq:Page] AS 页面 INNER JOIN [nt:base] AS 组件 ON IDESCENDANTNODE(组件,页面) WHERE IDESCENDANTNODE(页面, '/content') AND 组件.[sling:resourceType] = '/应用程序/平台/aem-core/组件/内容/表单/表单'


0
投票

从 nt:base 中选择 *,其中 jcr:path 如 '/content/%' 和 [sling:resourceType] ='/apps/platform/aem-core/components/content/form/form'

© www.soinside.com 2019 - 2024. All rights reserved.