春季启动:@GetMapping与Pageable作为请求参数无法正常工作

时间:2019-09-16 11:45:11

标签: java spring rest spring-boot spring-data-jpa

我正在使用 Spring Boot 2 ,并且我在@RestController内写了一个@GetMapping作为参数的Pageable

@GetMapping
public ResponseEntity<Page<AppointmentTO>> findAll(Pageable pageable) {
    Page<AppointmentTO> page = appointmentService.findAll(pageable);
    return ResponseEntity.ok(page);
}

问题如下:

对于每个请求,查询参数 pageSizeoffset在到达Spring Boot Backend(?offset=0&pageSize=20)时始终会重置为默认值。我在请求的网址中发送了不同的参数(例如?offset=15&pageSize=5)。

1 个答案:

答案 0 :(得分:2)

Spring Boot将请求参数映射到扩展org.springframework.data.domain.PageRequest的{​​{1}}

AbstractPageRequest

您应使用以下网址:

  AbstractPageRequest implements Pageable, Serializable {
    ...
    private final int page;
    private final int size;

    public long getOffset() {
        return (long)this.page * (long)this.size;
    }
    ...

您还可以按...&sort = name

添加排序