从分页REST中获取所有价值

时间:2016-10-29 13:08:41

标签: java rest pagination

有可能从分页REST中获取所有价值吗?例如,我有REST:

@RequestMapping(value = "/divisions", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<List<Division>> getAllDivisions(Pageable pageable)
    throws URISyntaxException {
    log.debug("REST request to get a page of Divisions");
    Page<Division> page = divisionRepository.findAll(pageable);
    HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/divisions");
    return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}

但在我的申请中,我需要得到所有的分歧。我试过这样的事情: http://localhost:9000/api/divisions?size=MAX但它不起作用。 我是否必须为此创建新的REST?

1 个答案:

答案 0 :(得分:1)

嗯,很有可能,您正在使用的数据库和驱动程序返回了分区内容的页面,该内容必须具有设置的页面大小。

在你的情况下,你要么用值'MAX'解析查询参数'size',如果size是MAX,你需要在循环中调用findAll方法,直到你获得所有页面并在循环中继续添加那些页面内容到列表,最后你将返回。

如何获取所有页面取决于您的驱动程序,例如在DynamoDB的情况下,有一种方法来获取页面内容的最后一个ID并使用该ID来获取下一页内容。没有具体细节,很难找到一种有效的方法。