欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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> ,在这样很简单的问题上花了不少时间,看来以后学东西不能太马虎了。

相关标签: JSP SQL