简体   繁体   中英

How can I get the total number of pages on Spring Data?

I have an Angular app that shows a list of entities and I have a 'show more' button that increments page number and uses this method:

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

I format this result and send it via REST's JSON. I want to disable 'show more' button if there's no further pages to get. There's a 'frameworkie' specific way to retrieve this number or I should use findAll() and count through this list?

This is the source code of Page interface

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);
}

You have getTotalElements() to get the total number of matching element.
getTotalPages() will give total number of pages.

Use result.getTotalElements() to get the total number of matching element.

Use result.getTotalPages() to get the total number of page.

ps Use result.getContent() to get the content as List<>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM