Используйте ResourceResolver API для выполнения и получения результатов запроса:
final Iterator<Resource> pagesIterator = resolver.findResources('<your_query_here>', javax.jcr.query.Query.JCR_SQL2);
while (pagesIterator.hasNext()) {
final Resource pageResource = pagesIterator.next();
LOG.info(pageResource.getName());
}
Однако обратите внимание, что если вы используете любую версию выше CQ 5.6, вам следует использовать вместо Page API .
В этом случае метод listChildren(Filter<Page> filter, boolean deep)
сделает работу.
Параметр PageFilter может использоваться, если вы хотите фильтровать страницы какого-либо типа. Поэтому, если для вашего алгоритма поиска страниц нет дополнительных критериев, вы можете передать пустой или новый пустой объект.
Логический параметр: если false
, он возвращает только прямые дочерние страницы, и если true
перечислит все страницы-потомки данной страницы.
Следовательно, эквивалентное решение SQL-запроса, обеспечивающее такие же конечные результаты, будет:
Iterator<Page> rootPageIterator = rootPage.listChildren(null, true);