Кеширование с разбивкой на страницы при загрузке Spring - PullRequest
0 голосов
/ 10 июля 2020

У меня есть конечная точка, которая извлекает данные из базы данных и возвращает огромное количество записей. Все эти записи должны быть видны в пользовательском интерфейсе, но по мере прокрутки представления.

Эти записи используются двумя способами: один отображается, а другой отображает подмножество записей на основе некоторого фильтра ( через ту же / другую конечную точку).

Любые предложения о том, как этого можно достичь с помощью функций Spring или без них?

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете добиться этого с помощью pageable. Пример кода контроллера для страницы

@PostMapping 
    @ResponseStatus(HttpStatus.OK)
    public Page<AllInventoryTransactions> fetchAllInwardInventory(@PageableDefault(page = 0, size = 10, sort = "created", direction = Direction.DESC) Pageable pageable) throws Exception
    {
        return allInventoryService.fetchAllInventory(pageable);
    }

Вы можете передать эту страницу, полученную из пользовательского интерфейса, непосредственно в Repo. Ниже приведен метод обслуживания

public Page<AllInventoryTransactions> fetchAllInventory(FilterDataList filterDataList, Pageable pageable) throws ParseException 
    {
        Page<AllInventoryTransactions> data = allInventoryRepo.findAll(spec,pageable);
            allInventoryReturnData.setTransactions(data);
        return data;
    }

в пользовательском интерфейсе, вы можете обработать logi c, чтобы сделать следующий вызов API, когда пользователь прокручивает страницу

...