以下是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 repositry中提供( / etc / crx-db / form-data / career ),我有节点: data1,data2,data3 ... 然后,对于每个节点,有一个属性 - 名称:已创建 |键入:日期 |价值: 2014-01-28T23:21:15.029 + 08:00 (例如) 但是我在 .csv 中的结果不正确,如(第1行到第5行):
非常确定我的代码没有运行。关于如何调整我的java代码以进行排序的任何想法?与返回已排序的data1,data2,data3 ... 一样,基于属性已创建。感谢。
答案 0 :(得分:5)
你快到了。它可以如下完成。
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");
如需进一步学习,请参阅this