课程
/后端开发
/Java
/HQL数据查询基础
为什么 打印map.get("s.name") 结果为空,打印别名却可以,没有理解,明白的麻烦讲一下吧,谢谢
2016-06-06
源自:HQL数据查询基础 5-4
正在回答
Hibernate封装返回数据的时候会解析你的SELECT字句时会判断该字段是否设置了别名,如果没有设置别名就采用字符串序号通过命名的先后来给定序号,若设置了别名hibernate就会以你给定的别名来作为key值进行命名。这涉及到hibernate框架的实现原理,你可以去看下源码或者简单点的遍历出返回的map集合,看看它都有那些key-value对,还有一个问题就是,如果你查询的字段中部分取了别名,部分没有,那么返回的结果又是怎么样的呢?
map.get("0");说明不用别名的时候Hibernate底层是用数字序号做键,框架的规则来着
"s.name"这个键没有值
说明没有相关的键没有对应的值,截图来看看
举报
使用HQL从数据库中找到你要的数据,掌握了使用Hibernate
2 回答HQL查询时别名的作用。
1 回答别名的问题
2 回答hql 查询 默认构造器的问题
1 回答数据库查询时只出现列名没有数据?也没报错是怎么回事
2 回答hql语句查询两个类,查询的结果list怎么遍历·