Map查询有关别名问题

来源:5-4 通过Map返回查询结果

zhangdi0534

2016-06-06 21:17

为什么 打印map.get("s.name") 结果为空,打印别名却可以,没有理解,明白的麻烦讲一下吧,谢谢

写回答 关注

4回答

  • 小丑鱼yang
    2017-01-15 23:17:44

    Hibernate封装返回数据的时候会解析你的SELECT字句时会判断该字段是否设置了别名,如果没有设置别名就采用字符串序号通过命名的先后来给定序号,若设置了别名hibernate就会以你给定的别名来作为key值进行命名。这涉及到hibernate框架的实现原理,你可以去看下源码或者简单点的遍历出返回的map集合,看看它都有那些key-value对,还有一个问题就是,如果你查询的字段中部分取了别名,部分没有,那么返回的结果又是怎么样的呢?

  • 3114002661
    2016-06-07 21:35:15

    map.get("0");说明不用别名的时候Hibernate底层是用数字序号做键,框架的规则来着

  • 3114002661
    2016-06-07 21:05:44

    "s.name"这个键没有值

  • 3114002661
    2016-06-07 21:04:24

    说明没有相关的键没有对应的值,截图来看看

HQL数据查询基础

使用HQL从数据库中找到你要的数据,掌握了使用Hibernate

41151 学习 · 90 问题

查看课程

相似问题