Skip to content

Sorting Parameters

Configurable Items

In a SpringBoot / Grails project, if the bean-searcher-boot-starter dependency is used, you can customize the sorting parameters through the following configuration items in the application.properties or application.yml file of the project:

Configuration Key NameMeaningOptional ValuesDefault Value
bean-searcher.params.sortParameter name for the sorting fieldStringsort
bean-searcher.params.orderParameter name for the sorting methodStringorder
bean-searcher.params.order-byParameter name for sorting (since v3.4.0)StringorderBy

Single-field Sorting

Usage example (under default configuration):

java
Map<String, Object> params = MapUtils.builder()
        .orderBy(User::getAge).desc()               // age field, descending order (since v3.7.1) (recommended way)
        .orderBy(User::getAge, "desc")              // Equivalent way 1
        .put("sort", "age")                         // Equivalent way 2
        .put("order", "desc")                       // Equivalent way 2
        .build();
SearchResult<User> result = searcher.search(User.class, params);

Multi-field Sorting (since v3.4)

java
Map<String, Object> params = MapUtils.builder()
        .orderBy(User::getAge).asc()                // age field, ascending order
        .orderBy(User::getTime).desc()              // time field, descending order (call the orderBy method multiple times)
        .put("orderBy", "age:asc,time:desc")        // Equivalent way      
        .build();
SearchResult<User> result = searcher.search(User.class, params);

Released under the Apache License