如何在以下代码中加入分页的功能 @Query( "select approvalRecord from ApprovalRecord approvalRecord inner join ApprovalRecordItem approvalRecordItem on approvalRecord = approvalRecordItem.approvalRecord where approvalRecordItem.status <> 'AUDITING' and approvalRecordItem.createdBy.login = ?#{principal.username} order by approvalRecordItem.id desc" ) List<ApprovalRecord> findAuditedByCurrentUser(); @GetMapping("/approval-records/my-created") public List<ApprovalRecord> getAllCreatedApprovalRecords() { log.debug("REST request to get all getAllCreatedApprovalRecords"); return approvalRecordRepository.findByCreatedByIsCurrentUser(); }
时间: 2023-12-10 14:39:25 浏览: 20
你可以使用 Spring Data JPA 中的 `Pageable` 接口来实现分页功能。首先,修改你的查询方法,将返回类型改为 `Page<ApprovalRecord>`,并且将查询语句中的 `List` 改为 `Page`。修改后的代码如下:
```
@Query("select approvalRecord from ApprovalRecord approvalRecord inner join ApprovalRecordItem approvalRecordItem on approvalRecord = approvalRecordItem.approvalRecord where approvalRecordItem.status <> 'AUDITING' and approvalRecordItem.createdBy.login = ?#{principal.username} order by approvalRecordItem.id desc")
Page<ApprovalRecord> findAuditedByCurrentUser(Pageable pageable);
```
然后,在你的控制器中,修改 `getAllCreatedApprovalRecords()` 方法,使用 `Pageable` 参数来接受分页请求,并且将返回类型改为 `Page<ApprovalRecord>`。修改后的代码如下:
```
@GetMapping("/approval-records/my-created")
public Page<ApprovalRecord> getAllCreatedApprovalRecords(Pageable pageable) {
log.debug("REST request to get all getAllCreatedApprovalRecords");
return approvalRecordRepository.findByCreatedByIsCurrentUser(pageable);
}
```
现在,你可以向该接口发送带有分页参数的 GET 请求来获取分页数据。例如,以下请求将返回第一页、每页最多显示 10 条记录的数据:
```
GET /approval-records/my-created?page=0&size=10
```