如何获取 Spring Data 的总页数?

我有一个显示实体列表的Angular应用程序,我有一个“显示更多”按钮,该按钮递增页码并使用此方法:

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

我格式化它并通过REST的JSON发送它。我想禁用“显示更多”按钮,如果没有进一步的页面可获取。有一种“框架”特定的方式来检索这个数字,或者我应该使用并计算这个列表?resultfindAll()


答案 1

这是接口的源代码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);
}

您必须获得匹配元素的总数。
将给出总页数。getTotalElements()getTotalPages()


答案 2

用于获取匹配元素的总数。result.getTotalElements()

用于获取总页数。result.getTotalPages()

p.s. 用于将内容获取为列表<>result.getContent()