2016-02-11 1 views
0

Я использую следующий запрос для получения узлов на основе последней измененной даты в CQ.Сравнение диапазона дат в CQ с использованием XPATH

/jcr:root/content/scaffoldes/properties//*[@jcr:primaryType = 'nt:unstructured' and (@sling:resourceType = 'acme/components/content/scaffoldItem' or @sling:resourceType = 'acme-core/components/data/property') and @jcr:content/cq:lastModified >= xs:dateTime('2000-01-01T00:00:00.000-08:00') and @jcr:content/cq:lastModified < xs:dateTime('2014-12-31T00:00:00.000-08:00') and not(@isHidden)] order by @jcr:score 

мы использовали

http://localhost:4502/crx/explorer/ui/search.jsp 

Для проверки этого запроса. Но даже после предоставления огромного диапазона дат (2000 - 2016) этот запрос ничего не возвращает.

Но Если мы удалим часть диапазона дат, этот запрос возвращает узлы.

Любой указатель, чтобы исправить это было бы полезно.

Спасибо и наилучшие пожелания, San

Примечание

дата строка создать с помощью следующего кода:

Calendar cal = Calendar.getInstance(); 
cal.setTime(start); 
String startDate = ValueFactoryImpl.getInstance().createValue(cal).getString(); 

ответ

0

Извините за путаницу вызвал. Я обнаружил, что узел, который я пытаюсь выполнить, не имеет свойства cq: lastModified. Поэтому был изменен запрос на включение cq: lastReplicated в условие.

... and ((@jcr:content/cq:lastModified >= xs:dateTime('2000-01-01T00:00:00.000-08:00') and @jcr:content/cq:lastModified < xs:dateTime('2016-02-11T15:52:57.090-08:00')) or (@jcr:content/cq:lastReplicated >= xs:dateTime('2000-01-01T00:00:00.000-08:00') and @jcr:content/cq:lastReplicated < xs:dateTime('2016-02-11T15:52:57.090-08:00'))) and ...