[英]Spring Data Rest @RepositoryRestController and @RequestMapping
[英]Spring Data: Page information missing fron response on using CollectionModel with RepositoryRestController
我的存储库方法是:
public Page<Order> findByStatusIn(List<OrderStatus> orderStatuses, Pageable pageable);
这是从 Controller ( @RepositoryRestController
) 调用的:
Pageable paging = PageRequest.of(page, pageSize, Sort.by(Sort.Direction.DESC,"id"));
Page<Order> myOrders = orderRepository.findByStatusIn(orderStatuses, paging);
Page 被转换为CollectionModel
:
CollectionModel<Order> resources = CollectionModel.of(myOrders);
resources.add(linkTo(methodOn(OrderController.class).userOrders(page,pageSize,currentUser)).withSelfRel());
return new ResponseEntity<>(resources,HttpStatus.OK);
输出的 json 是这样的:
{
"_embedded": {
"orders": [
{
"orderId": 10011,
"createdAt": "2022-05-18T16:28:19+05:30",
"lastUpdatedAt": "2022-06-10T16:28:15+05:30",
"createdBy": "User01",
"status": "PENDING"
},
{
"orderId": 10012,
"createdAt": "2017-05-03T14:28:19+05:30",
"lastUpdatedAt": "2022-06-10T16:28:15+05:30",
"createdBy": "User01",
"status": "SHIPPED"
}
]
},
"_links": {
"self": {
"href": "http://localhost:8080/orders/userOrders?page=0&pageSize=11"
}
}
}
我得到的数据是正确的,但响应缺少从 Spring 数据中的存储库方法获得的响应中的页面信息。 即,像这样的部分
"page": {
"size": 20,
"totalElements": 20,
"totalPages": 1,
"number": 0
}
不见了。
使用@RepositoryRestController
时如何将页面信息添加到响应中?
要创建可分页集合的表示,请使用PagedModel
而不是CollectionModel
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.