使用CQ5中的SQL2 ISDESCENDANTNODE查询不区分大小写的路径

时间:2013-11-29 12:14:53

标签: cq5 case-insensitive jcr-sql2

我有这个SQL2查询,它搜索某个路径的后代节点:

SELECT product.* FROM [nt:base] AS product 
INNER JOIN [nt:base] AS variant ON ISCHILDNODE(variant, product) 
  WHERE ISDESCENDANTNODE(product, '/etc/commerce/products/welzijnswinkel/welzijnswinkel/nl/hobby en vrije tijd') 
    AND ISDESCENDANTNODE(variant, '/etc/commerce/products/welzijnswinkel/welzijnswinkel/nl/hobby en vrije tijd') 

我是否可以编写此条件以使路径不区分大小写?例如,如果我有:

ISDESCENDANTNODE(variant, '/etc/commerce/products/welzijnswinkel/welzijnswinkel/nl/Hobby En Vrije Tijd')

仍可在'/ etc / commerce / products / welzijnswinkel / welzijnswinkel / nl / hobby en vrije tijd'下找到这些节点。

1 个答案:

答案 0 :(得分:1)

根据JCR规范,在以下情况下,2条路径相同:

  • 它们包含相同数量的细分。
  • P1中的每个段等于P2中相同位置的段。

当且仅当他们的JCR名称相等时,两个名称段相等。

由于通过调用String.compareTo()方法将2个JCR名称相等,然后以区分大小写的方式对它们进行比较,因此这个问题的答案是否定的,你不能写这个条件以便路径不区分大小写。

请参阅 3.4.8路径平等http://www.day.com/specs/jcr/2.0/3_Repository_Model.html