由于项目需要,现在需要进行两张表连接查询,但前期hql已经写好,现在只是想在原有的基础之上再加上一个表的连接查询,本来如果用本地sql的方式很容易实现,但是原来已经用hql来写,并且程序本身在取得查询结果后如果查询出来是对象,对后面的操作很方便,故要在原有hql基础之后添加外连接,如下:
if("0".equals(orgId)){ //顶级机构查询所有下级
hqlStrBuffer.append("select u from User u,Organization o where u.organization.orgId = o.orgId");
}
注意:
1、传统的方式是写成 from User ......这种形式,但此处要连接表,后面再加一张表,故写成:
from User u ,Organization o 后面再加上两个表的连接条件
2、通过两个表查询,但是只是想要其中的一个对象,写法:
select u from User u ……
至此,实现hql连接表查询