在学习mybatis-plus时,在对数据库进行分组查询聚合函数时,使用 List<Map<String, Object>> maps = userDao.selectMaps(qw);
//接口代码
@Mapper
@Repository
public interface UserDao extends BaseMapper<User> {
}
//测试代码
@Test
void testQueryWrapper11() {
QueryWrapper<User> qw = new QueryWrapper<>();
qw.select("tel","count(*) as count")
.groupBy("tel");
List<Map<String, Object>> maps = userDao.selectMaps(qw);
System.out.println(maps);
}
得到的结果中,Map的键值对顺序不是我查询时sql语句中的顺序,结果如下图:
如果改变sql语句中的字段名,键值对也会改变
@Test
void testQueryWrapper11() {
QueryWrapper<User> qw = new QueryWrapper<>();
qw.select("tel","count(*) as nums")
.groupBy("tel");
List<Map<String, Object>> maps = userDao.selectMaps(qw);
System.out.println(maps);
}
结果如下:
查阅一些资料后猜测这是因为按HashMap规则排列导致,但是我不能确定.
请问这是什么原因,还有怎么解决啊.