如何使用查询中的 uuid 在 JCR 中定位节点
How to locate the node in JCR using uuid from query
这是我得到的错误。
16.03.2016 12:02:16.413 WARN [xxx.xxx.xx.xxx [1458147736268] GET /en/employees-leaders/employee-s-toolkit2/epd-update/epd-update-archives/caterpillar-news/upcoming-brand-webinarfocusonmarketing.html HTTP/1.1] com.day.cq.wcm.core.impl.LanguageManagerImpl Error while
retrieving language property. javax.jcr.AccessDeniedException: cannot
read item xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (alpha-numeric)
我正在尝试使用 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 在 JCR 中定位节点,我认为它是 uuid,使用 AEM 中的查询。
- xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx实际上是uuid吗?
- 如何找到导致问题的来源,即节点?
我在 jcr 中尝试 运行 使用上述 id 的 sql,但没有返回任何结果。
//*[jcr:contains(., '91186155-45ad-474-9ad9-d5156a398629')] order by @jcr:score descending
任何其他见解将不胜感激。
您的查询不是您所说的 SQL,它是 XPATH。这是错字还是您 运行 查询不正确?
它确实看起来像一个 UUID。您可以查询 jcr:uuid
属性 或者您可以继续进行全文搜索。
XPATH:
/jcr:root//*[jcr:contains(., '91186155-45ad-474-9ad9-d5156a398629')]
/jcr:root//*[@jcr:uuid='91186155-45ad-474-9ad9-d5156a398629']
JCR-SQL2:
SELECT * FROM [nt:base] AS s WHERE contains(s.*, '91186155-45ad-474-9ad9-d5156a398629')
SELECT * FROM [nt:base] WHERE [jcr:uuid] = '91186155-45ad-474-9ad9-d5156a398629'
您的帐户有哪些读取权限? jcr:uuid
查询会在 /jcr:system/jcr:versionStorage
.
下找到很多结果
如果知道节点的UUID就不需要查询,直接使用Session.getNodeByIdentifier(String id)方法即可。
使用 QueryBuilderDebugger,(localhost:4502/libs/cq/search/content/querydebug.html) 和 运行 类似的查询来获取给定 uuid 的节点:
property=jcr:uuid
property.value=e69b256e-a466-3730-866b-de22c82ab8ck
path=/home
type=rep:Group
p.limit=10
这是我得到的错误。
16.03.2016 12:02:16.413 WARN [xxx.xxx.xx.xxx [1458147736268] GET /en/employees-leaders/employee-s-toolkit2/epd-update/epd-update-archives/caterpillar-news/upcoming-brand-webinarfocusonmarketing.html HTTP/1.1] com.day.cq.wcm.core.impl.LanguageManagerImpl Error while retrieving language property. javax.jcr.AccessDeniedException: cannot read item xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (alpha-numeric)
我正在尝试使用 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 在 JCR 中定位节点,我认为它是 uuid,使用 AEM 中的查询。
- xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx实际上是uuid吗?
- 如何找到导致问题的来源,即节点?
我在 jcr 中尝试 运行 使用上述 id 的 sql,但没有返回任何结果。
//*[jcr:contains(., '91186155-45ad-474-9ad9-d5156a398629')] order by @jcr:score descending
任何其他见解将不胜感激。
您的查询不是您所说的 SQL,它是 XPATH。这是错字还是您 运行 查询不正确?
它确实看起来像一个 UUID。您可以查询 jcr:uuid
属性 或者您可以继续进行全文搜索。
XPATH:
/jcr:root//*[jcr:contains(., '91186155-45ad-474-9ad9-d5156a398629')]
/jcr:root//*[@jcr:uuid='91186155-45ad-474-9ad9-d5156a398629']
JCR-SQL2:
SELECT * FROM [nt:base] AS s WHERE contains(s.*, '91186155-45ad-474-9ad9-d5156a398629')
SELECT * FROM [nt:base] WHERE [jcr:uuid] = '91186155-45ad-474-9ad9-d5156a398629'
您的帐户有哪些读取权限? jcr:uuid
查询会在 /jcr:system/jcr:versionStorage
.
如果知道节点的UUID就不需要查询,直接使用Session.getNodeByIdentifier(String id)方法即可。
使用 QueryBuilderDebugger,(localhost:4502/libs/cq/search/content/querydebug.html) 和 运行 类似的查询来获取给定 uuid 的节点:
property=jcr:uuid
property.value=e69b256e-a466-3730-866b-de22c82ab8ck
path=/home
type=rep:Group
p.limit=10