Query Builder exclude multiple pages without path.self property
Hi there,
I am trying to convert JCR-SQL2 query to Query Builder, but I see a warning that "Usage of self property in path predicate has been deprecated. Please avoid its usage.". I have tried several approaches but they didn't return valid results. Probably someone of you had experience with it.
JCR-SQL2 query:
SELECT * FROM [cq:Page] as page
WHERE (ISDESCENDANTNODE(page,'/content/project1/en/child1') OR ISDESCENDANTNODE(page,'/content/project1/en/child2') )
AND NOT ISDESCENDANTNODE(page, '/content/project1/en/page1')
AND NOT ISDESCENDANTNODE(page, '/content/project1/en/page2')
AND NOT ISSAMENODE(page, '/content/project1/en/page1')
AND NOT ISSAMENODE(page, '/content/project1/en/page2')
Query Builder:
type=cq:Page
p.limit=-1
group.1_group.p.or=true
group.1_group.1_path=/content/project1/en/child1
group.1_group.1_path.self=true
group.1_group.2_path=/content/project1/en/child2
group.1_group.2_path.self=true
group.2_group.path=/content/project1/en/page1
group.2_group.path.self=true
group.2_group.p.not=true
group.3_group.path=/content/project1/en/page2
group.3_group.path.self=true
group.3_group.p.not=true
Error:
16.05.2025 16:42:24.680 *WARN* [[0:0:0:0:0:0:0:1] [1747435344674] GET /libs/cq/search/content/querydebug.html HTTP/1.1] com.day.cq.search.impl.builder.RootEvaluator Usage of self property in path predicate has been deprecated. Please avoid its usage.
java.lang.Throwable:
at com.day.cq.search.impl.builder.RootEvaluator.checkAndLogSelfProperty(RootEvaluator.java:483) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.RootEvaluator.isPathPredicate(RootEvaluator.java:475) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.RootEvaluator.getAllSubQueryObjects(RootEvaluator.java:399) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.RootEvaluator.getAllSubQueryObjects(RootEvaluator.java:379) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.RootEvaluator.getAllSubQueryObjects(RootEvaluator.java:379) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.RootEvaluator.getXPathExpressionWithUnion(RootEvaluator.java:303) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.RootEvaluator.getXPathExpression(RootEvaluator.java:117) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.QueryImpl.executeXpath(QueryImpl.java:459) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.QueryImpl.execute(QueryImpl.java:537) [com.day.cq.cq-search:5.13.36]
at com.day.cq.search.impl.builder.QueryImpl.getResult(QueryImpl.java:115) [com.day.cq.cq-search:5.13.36]
Does anyone have experience with avoiding path.self property for Query Builder?
Thanks!
