使用Spring Data JPA从1开始分页结果的最简单方法是什么?

zphenhs4  于 2023-08-05  发布在  Spring
关注(0)|答案(2)|浏览(211)

在其他一些地方,我看到有人建议设置:
第一个月
但是,这并没有改变我的应用程序的行为。我已经把它放在我的SpringBoot应用程序的属性文件中。
我错过了什么吗?

rggaifut

rggaifut1#

我的问题

我想要这个端点:profiles?page=1&size=10page=1而不是page=0处开始分页结果。

我的解决方案

我将页面的defaultValue设置为1@RequestParam(value = "page", defaultValue = "1")
returnPaginatedProfiles的方法参数更改为page - 1。所以现在对于page=1,repository将返回page=0:returnPaginatedProfiles(page - 1, size)
控制器代码:

@GetMapping("/profiles")
public String getPaginatedProfiles(@RequestParam(value = "page", defaultValue = "1") int page,
                                   @RequestParam(value = "size", defaultValue = "10") int size) {
    Page<Profile> profilePage = profileService.returnPaginatedProfiles(page - 1, size);
    // Unimportant code logic...
}

字符串
服务代码:

public Page<Profile> returnPaginatedProfiles(int page, int size) {
    Pageable pageable = PageRequest.of(page, size);
    return profileRepository.findAll(pageable);
}

iklwldmw

iklwldmw2#

您可以使用PageableDefault注解,即Controller方法上的@PageableDefault(page = 1),例如:

@RestController
public class Controller {

  public Page< DataEntity > getEntities(@PageableDefault(page = 1)Pageable pageable){
    //repository call here...
  }
}

字符串

相关问题