Загрузить больше функциональности, используя Spring JPA - PullRequest
1 голос
/ 26 мая 2019

Я хотел бы включить функцию «Загрузка большего количества» на моем веб-сайте.Поскольку я извлекаю свои данные из удаленной БД с помощью Spring JPA, мне было интересно, как бы я реализовал такую ​​функцию в Spring?

По сути, я хочу загрузить только 100 записей на первом RESTвызов.И если пользователь нажимает «Загрузить еще», то я выполняю новый вызов для еще 100 записей из последнего индекса, который я остановил (означает записи 101–200) и т. Д.

Я могу отправить начало и конециндекс через HTTP POST, если это необходимо.это мой репозиторий:

@Repository
public interface IStatusRepository extends CrudRepository<StatusDAO,String> {

    List<StatusDAO> getStatusByIdAndFqhnIn(String id, List<String> filteredHostList);

}

Есть ли у вас какие-либо предложения?

1 Ответ

1 голос
/ 26 мая 2019

Вы можете использовать Pageable или PagingAndSortingRepository<T, ID> для выполнения ваших требований.Расширив PagingAndSortingRepository,, мы получим методы f indAll(Pageable pageable) и findAll(Sort sort) для подкачки и сортировки.

Как только мы получим наш репозиторий, расширяющийся от PagingAndSortingRepository, нам просто нужно:

  1. Создать или получить объект PageRequest, который является реализацией интерфейса Pageable
  2. Передайте объект PageRequest в качестве аргумента методу репозитория, который мы намереваемся использовать

Пример:

public interface ProductRepository extends PagingAndSortingRepository<Product, Integer> {

    List<Product> findAllByPrice(double price, Pageable pageable);
}

Pageable firstPageWithTwoElements = PageRequest.of(0, 2);

Pageable secondPageWithFiveElements = PageRequest.of(1, 5);

Page<Product> allProducts = productRepository.findAll(firstPageWithTwoElements);

List<Product> allTenDollarProducts = 
  productRepository.findAllByPrice(10, secondPageWithFiveElements);

Документ подкачки и сортировки См. 1 См. 2

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