Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.
SOLVED

adding more than one orderby.sort value to a hashmap

Avatar

Level 1

I have a predicate map that I am adding a orderby value to and sorting ascending on that field using orderby.sort.
I need to sort ascending on that field, while also adding a "nulls last" sort so that any sortable values will be sorted ascending at the beginning of the list, while all items with a null value in that sortable field will then show up in the list after that. 
How can I accomplish this?
Example:

currentParamMap.put("type", "cq:Page");
currentParamMap.put("orderby", "@jcr:content/publishDate");
currentParamMap.put("orderby.sort", "asc");

I have tried to add a second orderby via 1_orderby and 2_orderby and included the two sort values as 1_orderby.sort "asc" and 2_orderby.sort "nulls last" This does not work for me. I can sort by one or the other, but not both. Can this be done?

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

HI,

 

Query predicate orderby.sort has possible values of "asc/desc" as per - https://docs.adobe.com/content/help/en/experience-manager-65/developing/platform/query-builder/query...

 

If "nulls last" has to be incorporated, then try going for direct JCR-SQL2 and use QueryManager API(javax.jcr.query.QueryManager) for direct JCR-SQL2 query execution.

- javax.jcr.query.QueryManager.createQuery("queryString", Query.JCR_SQL2)

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

HI,

 

Query predicate orderby.sort has possible values of "asc/desc" as per - https://docs.adobe.com/content/help/en/experience-manager-65/developing/platform/query-builder/query...

 

If "nulls last" has to be incorporated, then try going for direct JCR-SQL2 and use QueryManager API(javax.jcr.query.QueryManager) for direct JCR-SQL2 query execution.

- javax.jcr.query.QueryManager.createQuery("queryString", Query.JCR_SQL2)