MyBatisPlus查询条件selectMaps返回List<Map<String, Object>>时键值对不匹配sql语句字段顺序

在学习mybatis-plus时,在对数据库进行分组查询聚合函数时,使用 List> maps = userDao.selectMaps(qw);

//接口代码
@Mapper
@Repository
public interface UserDao extends BaseMapper {
}
//测试代码
    @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语句中的顺序,结果如下图:

img

如果改变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);
    }

结果如下:

img

查阅一些资料后猜测这是因为按HashMap规则排列导致,但是我不能确定.
请问这是什么原因,还有怎么解决啊.

用selectList就行了

这解决个锤锤