gpt4 book ai didi

java - 有没有办法将 @JsonView 放在带有 QueryResult returnType 的 Controller 方法上?

转载 作者:行者123 更新时间:2023-11-30 07:08:15 27 4
gpt4 key购买 nike

我有一个 ViewModel 并根据 this post of spring.io 在某些字段上添加 json 注释如下所示:

public class SurveyViewModel{
@JsonView(View.Summary.class)
private Long id;
@JsonView(View.Summary.class)
private String title;
private String description;
private String endDate;
//Here is getters & setters
}

当我从 REST Controller 检索数据时,如果我的方法的返回类型是 List,则 json-result 正常:

@RequestMapping(value = "/getAllGrid", method = RequestMethod.GET)
@JsonView(View.Summary.class)
@ResponseBody
public List<SurveyViewModel> getAll{
return ModelMapper.mapList(iSurveyService.getAll(), SurveyViewModel.class);
}

但是当我对结果应用分页并将此方法的返回类型更改为 QueryResult 时,json-result 为空:

@RequestMapping(value = "/getAllGrid", method = RequestMethod.GET)
@JsonView(View.Summary.class)
@ResponseBody
public QueryResult<SurveyViewModel> search(String order, int pageNumber, int pageSize) {
return ModelMapper.mapQueryResult(iSurveyService.getAllGrid(new SearchOption("", order, pageNumber, pageSize)), SurveyViewModel.class);
}

当我使用上述方法对结果应用分页时,pageNumber、totalRecords 和 pageSize 添加到我的 json 结果中,原始数据添加到 entityList 作为内部 json 对象,这是我的 json 格式的QueryResult没有应用@JsonView:

{
"pageNumber" : 0,
"totalRecords" : 1,
"pageSize" : 10,
"entityList" : [{
"id" : 1,
"title" : "survey1",
"description" : "...",
"endDate" : "2017/01/18",
},{
"id" : 2,
"title" : "survey2",
"description" : "...",
"endDate" : "2016/11/18",
}]
}

现在我的问题是,有没有办法将 @JsonView 放在具有 QueryResult returnType 的 Controller 方法上?

最佳答案

QueryResult 是我用于分页的对象,我通过将 @jsonView 放在 QueryResult 类的属性上来解决我的问题,如下所示:

public class QueryResult<T> {
@JsonView(View.Summary.class)
private int pageNumber;
@JsonView(View.Summary.class)
private int totalRecords;
@JsonView(View.Summary.class)
private int pageSize;
@JsonView(View.SummaryWithRecipients.class)
private List<T> entityList = new ArrayList<T>();
//Here is getters & setters
}

关于java - 有没有办法将 @JsonView 放在带有 QueryResult returnType 的 Controller 方法上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695132/

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