AEM Query Builder API能否查询关联资源的属性?
AEM Query Builder 查询嵌套内容片段的jcrName方案
直接用Query Builder的话,确实没法像GraphQL那样直接做跨节点关联查询,但可以用属性引用+内置语法简化操作,不用先查目标片段再拼路径,一次查询就能搞定:
用属性引用直接访问关联节点的jcrName
假设FAQ内容片段的questionType字段存的是关联CF的完整JCR路径(比如/content/dam/question-types/day-of-the-procedure),直接写Query Builder参数就行:type=cq:ContentFragment path=/content/dam/faqs property=questionType/jcr:name property.value=day-of-the-procedure p.hits=full这里的
questionType/jcr:name就是通过属性引用语法,直接访问路径指向的关联节点的jcr:name属性,Query Builder会自动解析匹配。注意点
- 得保证
questionType是CF模型里的内容片段引用类型,存的是完整JCR路径,不然没法用/来关联访问子属性。 - 如果你的AEM版本低于6.5.10,这种属性引用语法可能不支持,那只能退而求其次用SQL2,或者先查出目标Question Type的路径再拼查询条件。
- 得保证
要是需要模糊匹配jcrName,还能结合property.operation:
type=cq:ContentFragment path=/content/dam/faqs property=questionType/jcr:name property.value=day-of-* property.operation=like p.hits=full
内容的提问来源于stack exchange,提问作者Preston Crawford
相关产品推荐
相关产品推荐

