hql 关联查询
程序员文章站
2022-03-05 17:03:00
...
以前一直以为hql很简单, 就一对象查询, 今天遇到一问题,折腾了许久, 才发现自己hql这块居然好多不知道.
以用户和角色为例, 一个用户可以对应多个角色,分别为user , role , 我的hql如下 :
from User u left join u.roles
数据库查询这一块没有问题,由于粗心,也没有去看控制台打印出来的sql是什么样子,我以为这一查询返回的是List<User>
的列表,然后在Jsp里面,理所当然的去遍历查出来的list ,取list里面单个user的属性在页面展示,整个过程很简单,jsp异
常显示说NumberFormatException"loginName" .......... ,一直不得解,loginName是user里面的一个属性,后面调试
的时候,查看hql查询出来的列表,发现居然不是List<User> ,而是个List,里面的每个元素是个Object的数组,该数组的
元素1为user对象,元素2为role对象。把开始的hql改为:
select u from User u left join u.roles
就ok了,查出来的就是List<User> ,在这样很简单的问题上花了不少时间,看来以后学东西不能太马虎了。