ADOBE CQ5 JCR - 如何使用节点属性对查询构建器结果进行排序/排序 [英] ADOBE CQ5 JCR - How to orderby/sorting query builder result using node's property

查看:167
本文介绍了ADOBE CQ5 JCR - 如何使用节点属性对查询构建器结果进行排序/排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上是java编码部分,然后将结果填充到.csv文件中。但是,我似乎没有正确的订购部分(下面的代码段中的最后一行)。

basically below is the java coding part, which the result will then be populated to a .csv file. However, I dont seem get the ordering part right (last line in below snippet).

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行) ):

Providing that in crx repositry (/etc/crx-db/form-data/career), I have nodes: data1, data2, data3... Then for each node, there is one property - Name: created | Type: Date | Value: 2014-01-28T23:21:15.029+08:00 (eg) However my result in .csv is incorrect like (row 1 to 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< - unsorted

  • 2014-02-10T18:43:32.426 + 08:00< - 未分类

  • 2014-02-10T18:46:53.319 + 08:00

  • 2014-01-28T23:21:15.029+08:00
  • 2014-01-28T23:48:12.219+08:00
  • 2014-02-10T18:44:38.914+08:00 <-- unsorted
  • 2014-02-10T18:43:32.426+08:00 <-- unsorted
  • 2014-02-10T18:46:53.319+08:00

非常确定我的代码没有运行。关于如何调整我的java代码以进行排序的任何想法?与返回已排序的data1,data2,data3 ... 一样,基于属性已创建。谢谢。

Pretty sure my code wasn't running. Any idea on how can I tweak my java code to make the sorting happen? As in returning sorted data1, data2, data3... based on the property created. Thanks.

推荐答案

你几乎就在那里。它可以按如下方式完成。

You were almost there. It can be done as follows.

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

如果您需要检查子节点中的属性,可以提供orderby值的相对路径。例如,如果您正在搜索dam:资产并想要根据其元数据的jcr:lastModified属性对它们进行排序,那么您的查询将与此类似。

In case you need to check property within a child node, you can provide the relative path to that for the orderby value. For eg., if you are searching for dam:Asset and want to order them based on the jcr:lastModified property of its metadata, then your query would be something similar to this.

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

如需进一步学习,请参阅这个

For further learning refer this

这篇关于ADOBE CQ5 JCR - 如何使用节点属性对查询构建器结果进行排序/排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆