Jak odpytywać dane po wyjęciu z pudełka za pomocą Spring data JPA zarówno przez sortowanie, jak i przeglądanie?

Próbuję Spring data JPA w moim projekcie. Chcę wiedzieć, czy istnieje gotowe API do odpytywania danych, zarówno przez Sort, jak i Pageable. Oczywiście, wiem, że sam mogę napisać tę metodę, chcę tylko wiedzieć, czy jest jakaś nieaktualna. Mój Dao rozszerza JpaRepository i znalazłem następujące metody, które mogę wywołać:

findAll();
findAll(Pageable pageable);
findAll(Sort sort);

Ale nie ma takiej metody jak findAll(Sort sort, Pageable pageable), więc jestem ciekawa.

Author: Stefan van den Akker, 2012-05-10

2 answers

Są dwa sposoby, aby to osiągnąć:

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);

Jak widać druga forma jest bardziej elastyczna, ponieważ pozwala zdefiniować inny kierunek dla każdej właściwości (lastName ASC, salary DESC).

 144
Author: Tomasz Nurkiewicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-10 06:19:17

Pageable ma również możliwość określenia sortowania. Z java doc

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

Tworzy nowy PageRequest z zastosowanymi parametrami sortowania.

 13
Author: gkamal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-10 20:00:00