Как я могу получить свойство и направление сортировки из Spring Data Pageable? - PullRequest
1 голос
/ 24 января 2020

Я создаю API, который будет вызывать другой API и возвращать результаты. API, который я вызываю, имеет механизм подкачки и сортировки, который требует добавления следующих параметров запроса к URL:

?pageNumber=1&pageSize=20&sortField=id&sortDirection=asc

Теперь я хотел бы, чтобы мой API использовал объект Spring Pageable в качестве параметра в контроллере Таким образом, согласно Spring Docs, URL, передаваемый моему новому API, будет выглядеть следующим образом:

?page=1&size=20&sort=id,asc

Поэтому, чтобы сопоставить полученный объект с возможностью просмотра страниц требуемым параметрам запроса, которые мне нужно передать в нижестоящий элемент API Мне нужно получить информацию о подкачке и сортировке из объекта Pageable. Что касается pageSize и pageNumber, то это довольно просто:

pageable.getPageNumber()
pageable.getPageSize()

Но как я могу получить sortField и sortDirection?

pageable.getSort() возвращает объект Sort, из которого Я не смог найти способ получить то, что мне нужно - значение sortField (строка с именем свойства) и значение sortDirection (как c или des c)

Спасибо

1 Ответ

4 голосов
/ 24 января 2020

Pageable::getSort даст вам Sort, то есть Iterable из Sort.Order с , Вам нужно перебрать каждый из них. Они содержат свойства, которые вы ищете.

Sort sort = Sort.by(Sort.Direction.ASC, "abc");

for (Sort.Order order : sort)
{
    System.out.println("Property: " + order.getProperty());
    System.out.println("Direction: " + order.getDirection());
}

Печать

Property: abc
Direction: ASC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...