Cq5中的查询构建器API

Kam*_*nan 0 jcr jcr-sql2 aem

嗨,我正在实现一个Java模块来获取具有特定组件的页面.下面是我使用的代码片段,但在运行模块时会收到警告说没有找到PredicateEvaluator 'sling:resourceType'.请建议我将resourceType属性作为查询参数的正确方法

Map<String, String> predicateMap = new HashMap<String, String>();
predicateMap.put("path","/content/geometrixx-outdoors/en/men");
predicateMap.put("type", "cq:Page");
predicateMap.put("sling:resourceType", "geometrixx-outdoors/components/title");
predicateMap.put("p.limit", "-1");
QueryBuilder queryBuilder = slingScriptHelper.getService(QueryBuilder.class);
com.day.cq.search.Query queryObj = queryBuilder.createQuery(PredicateGroup.create(predicateMap), session);
Run Code Online (Sandbox Code Playgroud)

Tho*_*mas 5

sling:resourceType确实不是一个有效的谓词评估者.你需要把它作为一个属性:

predicateMap.put("property", "jcr:content/sling:resourceType");
predicateMap.put("property.value", "geometrixx-outdoors/components/title");
Run Code Online (Sandbox Code Playgroud)

当您过滤type = cq:Page时,您还必须在属性的路径中包含jcr:content.