Search code examples
javaspring-data

Java Data PageRequest ColumnName and SortOrder in Strings


How do I get Column Name and Order property strings in Java PageRequest ?

import org.springframework.data.domain.PageRequest;
PageRequest pageRequest; 

After I set it in constructor,

PageRequest.of(0, 3, Sort.by("ProductName").descending());

What properties should I use in Java to get values from PageRequest object ?

getPageRequest().getSort() ??

I will eventually put values in SQL with NamedParameter JDBC Template:

select * from dbo.Product Order by @ColumnName @SortOrder Example: select * from dbo.Order by ProductName desc


Solution

  • If I am understanding your question properly , you want to extract column & order from PageRequest, then you can use something like below (getting Stream of Order, finding first element for extracting column and order details:

    Pageable page = PageRequest.of(0, 3, Sort.by("ProductName").descending());
    Sort.Order order = page.getSort().get().findFirst().orElse(null);
    
    if(order!=null) {
       String property = (null != order.getProperty()) ? order.getProperty() : null;   // returns you column name or else null
       String dir = order.getDirection().name();   //returns you Direction
    }