Как я могу получить общее количество страниц в Spring Data? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть приложение Angular, которое показывает список объектов, и у меня есть кнопка «Показать больше», которая увеличивает номер страницы и использует этот метод:

Page<myEntity> result = myRepo.findByAttr(attr, page);

Я форматирую это result и отправляю егочерез REST в формате JSON.Я хочу отключить кнопку «Показать больше», если нет других страниц, чтобы получить.Существует специальный способ получения этого числа, или я должен использовать findAll() и считать в этом списке?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Используйте result.getTotalElements(), чтобы получить общее количество подходящих элементов.

Используйте result.getTotalPages(), чтобы получить общее количество страниц.

ps Используйте result.getContent(), чтобы получить содержимое какList <>

0 голосов
/ 30 мая 2018

Это исходный код интерфейса Page

public interface Page<T> extends Slice<T> {

    /**
     * Returns the number of total pages.
     * 
     * @return the number of total pages
     */
    int getTotalPages();

    /**
     * Returns the total amount of elements.
     * 
     * @return the total amount of elements
     */
    long getTotalElements();

    /**
     * Returns a new {@link Page} with the content of the current one mapped by the given {@link Converter}.
     * 
     * @param converter must not be {@literal null}.
     * @return a new {@link Page} with the content of the current one mapped by the given {@link Converter}.
     * @since 1.10
     */
    <S> Page<S> map(Converter<? super T, ? extends S> converter);
}

У вас есть getTotalPages()

...