gpt4 book ai didi

java - Spring 数据休息 : Can we rename the "content" property in pagination result?

转载 作者:行者123 更新时间:2023-11-30 06:12:38 24 4
gpt4 key购买 nike

我有一个端点,它将结果作为分页输出提供,如下所示。

代码片段:

public Page<MyObject> getData(Pageable pageable) {
return repository.findAll(pageable);
}

回应:

{
"content": [
{
"id": 2,
"name": "",
"regionName": "",
"category1": "",
"category2": "",
"modifiedDateTime": "",
"abstract": ""
}
],
"pageable": {
"sort": {
"sorted": false,
"unsorted": true
},
"offset": 0,
"pageSize": 1,
"pageNumber": 0,
"paged": true,
"unpaged": false
},
"last": false,
"totalPages": 10,
"totalElements": 5808,
"size": 1,
"number": 0,
"numberOfElements": 1,
"first": true,
"sort": {
"sorted": false,
"unsorted": true
}
}

我们可以将属性名称“content”重命名为“data”等其他名称吗?

此外,我们可以删除输出中的附加分页参数吗?例如:排序、偏移

最佳答案

您无法修改 PageImpl 类并添加 @JsonProperty 进行重命名,但您可以为其创建装饰器。另外,如果您需要隐藏可分页(或任何其他属性),那么您只需不要将它们暴露给装饰器即可。

class PageDecorator<T> {

private final Page<T> page;

public PageDecorator(Page<T> page) {
this.page = page;
}

@JsonProperty("data") // override property name in json
public List<T> getContent() {
return this.page.getContent();
}

public int getTotalPages() {
return page.getTotalPages();
}

public long getTotalElements() {
return page.getTotalElements();
}

...
}

您的代码应如下所示:

public PageDecorator<MyObject> getData(Pageable pageable) {
return new PageDecorator<>(repository.findAll(pageable));
}

关于java - Spring 数据休息 : Can we rename the "content" property in pagination result?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49900045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com