为了账号安全,请及时绑定邮箱和手机立即绑定

Map查询有关别名问题

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

正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

"s.name"这个键没有值

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

Map查询有关别名问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信