ThatMan
ThatMan

Reputation: 178

Get spring boot pagination number starts from 1 instead of 0

I am using spring boot for my API. There is a concept of pagination in my API so I am using spring-data-core 2.5.5 RELEASE for this. Now in response when I access the first page of my API the pagable object in the Response is as following

"page": { "size": 200, "totalElements": 15, "totalPages": 1, "number": 1 // always less than by 1 from the given page number }

I have already tried setting the property setOneIndexedParameters(true) but the issue still persists.

Please tell me a way to get it right without increasing the number in code.

Upvotes: 1

Views: 6898

Answers (1)

S.Y. Wang
S.Y. Wang

Reputation: 254

How did you set the property setOneIndexedParameters? To customize the pagination you just need to register a bean implementing the interface PageableHandlerMethodArgumentResolverCustomizer.

For example

@Configuration
public class CustomConfig {

    @Bean
    public PageableHandlerMethodArgumentResolverCustomizer customize() {
        return p -> p.setOneIndexedParameters(true);
    }
}

OR

@Component
public class CustomConfig implements 
                    PageableHandlerMethodArgumentResolverCustomizer {

    @Override
    public void customize(PageableHandlerMethodArgumentResolver pr) {
        pr.setOneIndexedParameters(true);
    }
}

Ref: HandlerMethodArgumentResolvers for Pageable and Sort

Upvotes: 6

Related Questions