簡體   English   中英

休息控制器響應頁面 <ObjectDto> 返回空對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM