zhangdi0534
2016-06-06 21:17
为什么 打印map.get("s.name") 结果为空,打印别名却可以,没有理解,明白的麻烦讲一下吧,谢谢
Hibernate封装返回数据的时候会解析你的SELECT字句时会判断该字段是否设置了别名,如果没有设置别名就采用字符串序号通过命名的先后来给定序号,若设置了别名hibernate就会以你给定的别名来作为key值进行命名。这涉及到hibernate框架的实现原理,你可以去看下源码或者简单点的遍历出返回的map集合,看看它都有那些key-value对,还有一个问题就是,如果你查询的字段中部分取了别名,部分没有,那么返回的结果又是怎么样的呢?
map.get("0");说明不用别名的时候Hibernate底层是用数字序号做键,框架的规则来着
"s.name"这个键没有值
说明没有相关的键没有对应的值,截图来看看
HQL数据查询基础
41151 学习 · 90 问题
相似问题