【发布时间】:2020-08-27 17:59:54
【问题描述】:
我有一个简单的 spring-boot 应用程序,其中包含一个扩展 JpaRespository 的存储库(进而扩展 PagingAndSortingRepository:
@RestController
@RepositoryRestResource
public interface CatalogueOrderRepository extends JpaRepository<CatalogueOrder, Long>,
QuerydslPredicateExecutor<CatalogueOrder> {
@GetMapping("/orderStatusNot")
Page<CatalogueOrder> findByOrderStatusNot(String orderStatus, Pageable page);
}
除了提供基本 CRUD/分页/排序端点的 JpaRepository 之外,我还使用方法命名创建了一个自定义查询/端点 - findByOrderStatusNot。
PagingAndSortingRepository 中定义的默认 findAll() 方法似乎返回 Page<T>,与我在 findByOrderStatusNot 中定义的相同。但是,它们的实际 JSON 响应似乎大不相同。
/catalogueOrders 大致返回:
_embedded:
catalogueOrders: [
catalogueOrder + _links
]
_links:
self
profile
search
page:
size
totalElements
totalPages
number
orderStatusNot 大致返回:
content: [
{catalogueOrder}...
]
pageable:
pageable:
sort:
sorted
unsorted
empty
offset
pageSize
pageNumber
paged
unpaged
last
totalElements
totalPages
size
number
sort:
sorted
unsorted
empty
numberOfElements
first
empty
为什么默认提供的端点会提供如此不同的结果?以及如何使我的端点与findAll() 一致?
【问题讨论】:
-
Page<CatalogueOrder> findByOrderStatusNot(String orderStatus, Pageable page);有没有回复你?? -
如果我尝试 /catalogueOrders/search/findByOrderStatusNot?orderStatus=delayed 它会返回与 /catalogueOrders 相同的输出,请参阅code on github page-find-all
标签: java jpa pagination spring-data-jpa spring-data-rest