我试图解决的用例是:
查找 /apps.下所有组件的所有页面引用
i、 e.首先查找正在使用组件的所有页面,然后对/apps下的所有组件执行此操作。
通过使用Adobe AEM的报表生成器工具:https://adobe-consulting-services.github.io/acs-aem-commons/features/report-builder/configuring.html
查询我正在尝试:
SELECT * FROM [nt:base] AS s
WHERE [sling:resourceType] IN (SELECT path FROM [cq:Component] AS s WHERE [componentGroup] IS NOT NULL AND ISDESCENDANTNODE([/apps]))
AND ISDESCENDANTNODE([/content])
背景:我只需要对内部查询的结果集进行消毒。如果不进行消毒,它会吐出表单/apps/acs-Commons/组件/实用程序/报告生成器/列/文本
的路径,而外部查询中的sling: resourceType只能接受acs-Commons/组件/实用程序/报告生成器/列/文本
。所以我需要从内部查询结果集路径中去掉/apps/
。
以下是错误消息:
Caused by: java.text.ParseException: Query: SELECT * FROM [nt:base] AS s
WHERE [sling:resourceType] IN (SELECT(*)CAST(path, AS STRING) FROM [cq:Component] AS s WHERE [componentGroup] IS NOT NULL AND ISDESCENDANTNODE([/apps]))
AND ISDESCENDANTNODE([/content]); expected: static operand
我不认为可以使用jcr sql2
语法操作结果集,存储的过程通常用于操作类似于PL/SQL的结果集,我在jcr文档中没有找到任何关于这一点的参考。事实上,据我所知,jcr甚至不支持聚合函数,比如MAX()
,COUNT()
,等等
这是一个很好的方法-
SELECT * FROM [nt:unstructured] AS comp
WHERE ISDESCENDANTNODE(comp, "/content/prj")
AND [sling:resourceType] IN ("prj/components/content/accordion","prj/components/content/breadcrumb")
为了加快这个过程,你可以使用文本编辑器,比如记事本,它可以帮助你进行块选择(ctrl-alt-shift,然后单击鼠标左键并拖动以进行选择),删除/apps,添加开始/结束双引号、逗号和替换换行符,将所有内容放在一行中,并构建整个查询。
我想知道其他人的想法,以及这是否可以通过jcr sql2
语法实现。
问题内容: 有没有一种方法可以在Python中对字符串进行子字符串化,以从第三个字符到字符串末尾获取新的字符串? 也许喜欢吗? 如果离开第二部分意味着“直到最后”,而如果离开第一部分,它是否从头开始? 问题答案: Python称这个概念为“切片”,它不仅适用于字符串,还适用于更多的领域。看看这里的一个全面的介绍。
问题内容: 我有一个字符串(基本上是遵循命名约定的文件名) 我想在第一个(即一个点)之前提取子字符串 在java doc api中,我似乎找不到在String中执行此操作的方法。 我想念什么吗?怎么做? 问题答案: 看看和。 确保检查的-1 。
我有两根绳子 在两种情况下,我应该删除
问题内容: 如何将(度)字符转换为字符串? 问题答案: 将此行放在源代码的顶部 如果您的编辑器使用其他编码,请替换为utf-8 然后,您可以直接在源代码中包含utf-8字符
问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我需要一个函数来返回两个单词(或两个字符)之间的子字符串。我想知道是否有实现该功能的php函数。我不想考虑正则表达式(嗯,我可以做一个,但实际上并不认为这是最好的方法)。思维与功能。这是一个例子: 我们调用该函数: 它返回:“我想要一个蛋糕”。 提前致谢。 更新: 嗯,到
问题内容: 如何在特定子字符串之后获取字符串? 例如,我想在 问题答案: 最简单的方法可能只是分割目标词 split使用要拆分的单词(或字符),并且可以选择限制拆分次数。 在此示例中,对“世界”进行拆分并将其限制为仅一个拆分。