Вопрос по spring, java – Как запросить данные из коробки, используя данные JPA Spring по типу Sort и Pageable?

68

я стараюсьВесенние данные JPA в моем проекте. Я хочу знать, есть ли готовый API для запроса данных, обоимиSort а такжеPageable, Конечно, я знаю, что могу написать этот метод сам, я просто хочу знать, есть ли готовый метод. Мой DAO расширяетсяJpaRepositoryи я обнаружил, что есть следующие методы, которые я могу вызвать:

<code>findAll();
findAll(Pageable pageable);
findAll(Sort sort);
</code>

Но нет такого метода, какfindAll(Sort sort, Pageable pageable)Мне так любопытно.

Ваш Ответ

4   ответа
0

Spring Pageable Сортировка включена. Так что, если ваш запрос имеет значения, он вернет отсортированную страницу.

запрос: domain.com/endpoint?sort=[FIELDTOSORTBY]&[FIELDTOSORTBY].dir=[ASC|DESC]&page=0&size=20

Это должно вернуть отсортированные страницы по полю, указанному в указанном порядке.

0
 public List<Model> getAllData(Pageable pageable){
       List<Model> models= new ArrayList<>();
       modelRepository.findAllByOrderByIdDesc(pageable).forEach(models::add);
       return models;
   }
Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.
Пожалуйста, прокомментируйте код, даже если он не требует пояснений.
151

final PageRequest page1 = new PageRequest(
  0, 20, Direction.ASC, "lastName", "salary"
);

final PageRequest page2 = new PageRequest(
  0, 20, new Sort(
    new Order(Direction.ASC, "lastName"), 
    new Order(Direction.DESC, "salary")
  )
);

dao.findAll(page1);

Как вы можете видеть, вторая форма более гибкая, так как позволяет определять разные направления для каждого свойства (lastName ASC, salary DESC).

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
13

Java документ

PageRequest(int page, int size, Sort.Direction direction, String... properties) 

Создает новый PageRequest с примененными параметрами сортировки.

Error: User Rate Limit Exceeded

Похожие вопросы