Как выбрать идеальный способ разбиения на страницы в весенней загрузке? - PullRequest
0 голосов
/ 29 июня 2018

Мне нужен ваш совет по нумерации страниц.

Данные в моей таблице очень длинные. Поэтому я использую нумерацию страниц и каждое действие пага, я вызываю данные из базы данных
У меня есть метод отдыха в приложении весенней загрузки.
Этот метод может получить данные из базы данных, и все в порядке.
Мне нужно количество страниц (все мои данные / количество страниц).
Я могу найти этот счет из базы данных.
Я должен написать два отдельных метода для allCount и метод ниже?

Как я могу использовать идеальный способ разбиения на страницы в весенней загрузке?

  @CrossOrigin(maxAge = 3600)
    @RequestMapping(value = "/payment/all", method = RequestMethod.POST)
    public List<NotaryPaymentInformationEntity> getAllProduct(@RequestBody PaginationModel pag){
        try {
            System.out.println(pag.getPageno()+ " " + pag.getRecords());
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Pageable pageable = new PageRequest(pag.getPageno(), pag.getRecords());
        System.out.println("here"+notaryPaymentRepository.findAll(pageable).getContent().size());
        return notaryPaymentRepository.findAll(pageable).getContent();
    }




public interface NotaryPaymentRepository  extends JpaRepository<NotaryPaymentInformationEntity,Integer>{


}

enter image description here

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Вы можете получить ответ на ваш запрос в классе Page obj, который расширяет класс Slice и содержит все необходимые вам методы.

Pageable pageable = new PageRequest(pageNo, PAGE_SIZE);

pageNo и PAGE_SIZE должны быть отправлены с клиента

@Query(value = "SELECT h FROM {NameOfYourModelClass} h")
Page<HorseWatch> getPaginatedModel(Pageable pageable);

Вызовите этот метод из вашего класса обслуживания и получите его в объекте Page

Вы можете получить содержимое страницы, номер страницы и общее количество страниц, используя (используя getContent () , getNumber () , getTotalPages () из объект)

Сохраните эти значения в своем классе ответа и отправьте этот класс обратно клиенту

public class PageResponse {
    private List<{NameOfModelClass}> content;
    private int currentPage;
    private int totalPages;
}
0 голосов
/ 29 июня 2018

Вам нужна поддержка нумерации страниц, затем добавьте параметр Pageable pageable

    @CrossOrigin(maxAge = 3600)
    @RequestMapping(value = "/payment/all", method = RequestMethod.POST)
    public List<NotaryPaymentInformationEntity> getAllProduct(Pageable pageable){
        try {
            System.out.println(pag.getPageno()+ " " + pag.getRecords());
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //NO pageable object need to be manually constructed
        return notaryPaymentRepository.findAll(pageable).getContent();
    }

и URL теперь могут иметь дополнительные параметры запроса, такие как / payment / all? Page = 2 & size = 10

Если вы используете Spring data REST, то у вас будет поддержка HATEOAS, которая даст вам больше информации о том, сколько общего количества существует, на какой странице вы находитесь и т. Д. Но ответ будет в формате HAL. Ссылка: https://docs.spring.io/spring-data/rest/docs/current/reference/html/#paging-and-sorting

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