热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

将JPA查询结果封装成Map返回以及Map排序

一、查询表中个别字段,并将这些字段封装为键值对map的形式返回给前端sql语句:selectb.userid,b.namefromtable_name

一、查询表中个别字段,并将这些字段封装为键值对map的形式返回给前端

sql语句:select b.userid,b.name from table_name b where b.userid in (1,2,3);

如果对返回的结果不做任何处理,返回的结果是这样的:

[[1,"张三"],[2,"李四"],[3,"王二"]
]

理想中的结果应该是这样的:

[{"userid":1,"truename": "张三"},{"userid":2,"truename": "李四"},{"userid":3,"truename": "王二"},…
]

思路:List—>Map—>List

List<Object> list &#61; userService.findById(xxx);//查询结果原始列表
List<Object> arrayList &#61; new arrayList();
for (Object obj : list) {Map<String, Object> map &#61; new HashMap<>(); //这个Map一定要放在循环里面&#xff0c;如果放在循环外面&#xff0c;你add进去的map指向的是同一个内存地址&#xff0c;不管你add进去多少次&#xff0c;数据都是一样的。Object[] arr &#61; (Object[]) obj;map.put("userid",arr[0]);map.put("name",arr[1]);arrayList.add(map);
}

此时&#xff0c;可以正常返回目标map列表。

二、若期望返回&#xff1a;
“content”: {
“广东”: 55261&#xff0c;
“浙江”&#xff1a;2000&#xff0c;
“安徽”&#xff1a;2100&#xff0c;

}
代码如下&#xff1a;

List<Object> organizationProvinceCountList &#61; sampleService.findGroupByOrganizationAndProvince(organizationName);Map<String, Integer> map &#61; new HashMap<>();for (Object obj : organizationProvinceCountList) {Object[] arr &#61; (Object[]) obj;if(arr[0] &#61;&#61; null || "".equals(arr[0]))map.put("未知", Integer.valueOf(arr[1].toString()));elsemap.put((String) arr[0], Integer.valueOf(arr[1].toString()));}

如果想对上述结果按照键值对的value倒序排列&#xff0c;则&#xff1a;

LinkedHashMap<String, Integer> result &#61; map.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue,LinkedHashMap::new));//按value倒序排列return JsonViewObject.success(result.entrySet().iterator().next());//返回倒序排列后的第一个元素&#xff0c;即按value排序后最大的省份及其数量

参考链接&#xff1a;
http://t.zoukankan.com/BeenTogether-p-14566444.html jpa中将查询的字段返回为Map键值对类型

https://segmentfault.com/a/1190000020276225 Java8 对 Map 排序


推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
author-avatar
请叫她秋嫦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有