繁体   English   中英

使用api页清空数据 <E> 在春季数据JPA中

[英]Empty data with api Page<E> in spring data JPA

@RestController
@Transactional
public class ApiController {

    @Autowired
    CategoryService categoryService;

    @SuppressWarnings("deprecation")
    @RequestMapping(value="/api/category/page", method=RequestMethod.GET)
    public Page<Category> getCategoryList() {
        return categoryService.findAll(new PageRequest(0, 10));
    }

}

我想检索在angularjs中使用的Page,该页面什么都不返回: {} 当我getContent () ,数据仍可应要求提供:

 [{"cid": 1, "cname": "Tien Hiep", "cmetaTitle": "tien-hiep", 
 "createDate": "May 6, 2018 1:04:58 PM "," createBy ":" Admin "," 
 modifiedDate ":" May 28, 2018 11:09:57 AM "," modifiedBy ":" Admin 
 "," cstatus " ..]

如果我想返回如下页面类型:

    {
        "content":[
            {"cid": 1, "cname": "Tien Hiep", "cmetaTitle": "tien-hiep", "createDate": "May 6, 018 1:04:58 PM "," createBy ":" Admin "," modifiedDate ":" May 28, 2018 11:09:57 AM "," modifiedBy ":" Admin "," cstatus "}, 
            ...
        ],
        "last":false,
        "totalElements":10,
        "totalPages":4,
        "size":10,
        "number":0,
        "sort":null,
        "first":true,
    }

有人可以帮我解决这个问题吗?

如果您添加具有页面限制和偏移量的PageRequest,则JPA将以Page而不是List的形式返回响应。 因此,您必须先使用.getContent()将Page转换为List,然后再将其发送到application。 这样该应用程序将可以正常工作。

PageRequest pageable= createPageRequest(page,size,sortBy,sortField); /** method to return PageRequest */
Page<TestData> pageList = testDataRepository.findAll(pageable);
List<TestData> testDataList = pageList.getContent();

将返回类型更改为List并添加@Produces(“ application / json”),以便API将数据作为json返回。

如果使用Maven,请添加jax-rs或jersey依赖项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM