gpt4 book ai didi

java - 转换 Query.getResultList() 的输出

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

在我的应用程序中,当用户请求模型列表(SheetItem)时,服务会查询数据库并将结果返回到 Controller

这是我的模型:

  public class SheetItem
{
private long id;
private String name;
.. getters and setters and constructor
}

这是服务代码:

public List<SheetItem> listSheets(int pageNumber) {
Query query= em.createQuery("select id,name from SheetItem");
query.setFirstResult(pageNumber*10);
query.setMaxResults(10);
return query.getResultList();
}

这是 Controller :

@GetMapping("/list")
public @ResponseBody List<SheetItem> getAllSheets(@RequestParam("page") int pageNum){
List<SheetItem> realList = sheetServices.listSheets(pageNum);
return realList;
}

问题是返回给用户的数据不是 JSON 格式(即使有“Content-Type:application/json;charset=UTF-8”自动生成的 header )。输出是:

[
[
1,
"my first sheet"
],
[
2,
"my second sheet"
]
]

在调试代码时,我注意到返回的List的成员类型是Object:

enter image description here

如何将格式转换为 JSON?

最佳答案

使用 TypedQuery 确保返回正确的类型:

public List<SheetItem> listSheets(int pageNumber) {
TypedQuery<SheetItem> query = em.createQuery("from SheetItem", SheetItem.class);
// ... this part is unchanged ...
return query.getResultList();
}

关于java - 转换 Query.getResultList() 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47890195/

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