java - 使用原生查询实体管理器获取 jsonArray
问题描述
我有一个服务类如下:
public class RulesService {
@PersistenceContext
private EntityManager em;
public JSONArray getReportingTableData(String Query) {
List<Object> list = em.createNativeQuery(Query).getResultList();
return /*convert the above list as json array**/;
}
}
所以,如果查询是“select col1 as name,col2 as agefrom table1”那么我的 jsonArray 应该是
[{"name":"test","age":"24"},{"name":"test1","age":"26"}]
我不想在这里使用 pojo 或实体类,因为查询会动态变化并且这里有很多表,所以我不想为每个表创建单独的 java 类。这就是我尝试的原因使其成为 JSONArray。
谁能给我正确的解决方案。
解决方案
我猜你想像下面这样。您的查询结果是数组列表。[["test","24"],["test2","26"]]
你想把它转换成key-value
List<Map<String,String>> result = listOfarray.stream()
.map(arr->{
Map<String,String> map = new HashMap<>();
map.put("name",arr[0]);
map.put("age",arr[1]);
return map;
})
.collect(Collectors.toList());
推荐阅读
- ansible - 具有多个主机的 Ansible“任务逻辑”?
- javascript - 仅在登录后才能访问页面 - React
- nginx - 如何将 WWW url 重定向到 nginx 中的非 www url?
- sql - 将日期字段与oracle中的特定日期时间进行比较
- for-loop - How to remove all cloned gui in roblox
- python - 从 SQL 和 python 中的列表中选择
- c# - .Net Core 3.1 MVC - 授权 - 如何记录成功或失败的登录?
- ruby - 如何在 Sinatra 中维护使用 Pony gem 发送的电子邮件状态日志
- python - 自动更新请求授权承载
- windows - 在命令提示符下使用 DEL 批处理文件命令删除后文件去哪了?