[英]Rest Controller response Page<ObjectDto> returning empty object
我已經使用Spring Data Pageable實現分頁和排序。 我相關的代碼段是:
//GET API designed as POST due to Request Body, in lines of ES APIs
@PostMapping(value = "/v2")
public Page<ObjectDto> getObjects(@RequestBody @Valid Map<Integer, FilterRequestDto> filterDtoMap, Pageable pageable) {
Page<ObjectDto> objectDtos = myService.getDtos(filterDtoMap, pageable);
log.info(String.valueOf(objectDtos.getTotalElements()));
return objectDtos;
}
盡管我有數據(從日志中確認),但上述API仍以{}響應。
但是,當我像下面的代碼片段那樣返回List時:
@PostMapping(value = "/v2")
public List<ObjectDto> getObjects(@RequestBody @Valid Map<Integer,FilterRequestDto> filterDtoMap, Pageable pageable) {
Page<ObjectDto> objectDtos = myService.getDtos(filterDtoMap, pageable);
log.info(String.valueOf(objectDtos.getTotalElements()));
return objectDtos.getContent();
}
完全相同的API的列表返回類型的響應是預期的正確響應:
[{“ sellingPrice”:23000,“ id”:1,“ version”:1,“ createdOn”:“ 25 Feb 2019,05:53”,“ lastUpdatedOn”:“ 25 Feb 2019,05:53”}]
倉庫代碼:
@Repository
public interface MyObjectRepository extends JpaRepository<MyObject, Long>, JpaSpecificationExecutor<MyObject> {}
服務代碼:
public Page<ObjectDto> getTyres(Map<Integer, FilterRequestDto> filterDtoMap, Pageable pageable) {
List<FilterDto> filterDtoList = filtersService.getAllFiltersById(filterDtoMap.keySet());
return objectMapper.toDto(myObjectRepository.findAll(ObjectSpecs.filter(filterDtoList, filterDtoMap), pageable));
}
據我所知,我們可以將頁面作為Rest API響應返回,那么這里可能是什么問題? 任何幫助都感激不盡。
不要使用Page<ObjectDto>
作為rest方法的返回類型。 此頁面不適合該頁面。 使用返回類型作為List<ObjectDto>
並在日志中您正在打印
log.info(String.valueOf(objectDtos.getTotalElements()));
因此它的打印正確,如果您在rest方法中返回objectDtos.getTotalElements()
,那么它也將正常工作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.