ADOBE CQ5 JCR - Как упорядочить / сортировать результаты построителя запросов с использованием свойства узла

в основном ниже представлена ​​часть кодирования java, результат которой затем будет записан в файл .csv. Тем не менее, я не понимаю, как правильно оформить заказ (последняя строка в нижеследующем фрагменте).

Map<String, String> map = new HashMap<String, String>();
map.put("path", "/etc/crx-db/form-data/career");
map.put("type", "nt:unstructured");
map.put("p.limit", "-1");
map.put("daterange.property", "created");
map.put("daterange.lowerBound", from);
map.put("daterange.lowerOperation", ">=");
map.put("daterange.upperOperation", "<=");
map.put("daterange.upperBound", to);
map.put("orderby", "created"); //<--here

При условии, что в репозитории crx (/ etc / crx-db / form-data / карьера) у меня есть узлы: data1, data2, data3 ... Затем для каждого узла , есть одно свойство - Имя: создано | Тип: Дата | Значение: 2014-01-28T23: 21: 15.029 + 08: 00 (например), однако мой результат в .csv неверен, например (строки с 1 по 5):

  • 2014-01-28T23:21:15.029+08:00
  • 2014-01-28T23:48:12.219+08:00
  • 2014-02-10T18: 44: 38.914 + 08: 00 ‹- несортированный
  • 2014-02-10T18: 43: 32.426 + 08: 00 ‹- несортированный
  • 2014-02-10T18:46:53.319+08:00

Я уверен, что мой код не работает. Любая идея о том, как я могу настроить свой Java-код, чтобы сортировка произошла? Как и при возврате отсортированных данных1, данных2, данных3 ... на основе свойства создано. Спасибо.


person James    schedule 10.02.2014    source источник


Ответы (1)


Вы были почти у цели. Это можно сделать следующим образом.

map.put("orderby", "@created"); 
map.put("orderby.sort", "desc"); // in case you want it descending

Если вам нужно проверить свойство в дочернем узле, вы можете указать относительный путь к нему для значения orderby. Например, если вы ищете dam: Asset и хотите упорядочить их на основе свойства jcr: lastModified его метаданных, тогда ваш запрос будет примерно таким.

map.put("path", "/content/dam/geometrixx");
map.put("type", "dam:Asset");
map.put("orderby","@jcr:content/metadata/jcr:lastModified");

Для дальнейшего обучения см. это

person rakhi4110    schedule 10.02.2014