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

hibernate hql 嵌套查询(中间表查询)

程序员文章站 2023-12-29 12:36:16
...

我们在用hibernate时,会在对应的实体加上对应一对多,多对多,多对一关系。而在查询的时候,我们会用到嵌套去查询。

  但是,在这里有一点声明,在用hql查询的时候, 网上很多人都说 hibernate 不支持 from 子查询。这点我没有去验证,大家可以注意以下。

 

 

 

多对多,有相关中间表

         一开始我本打算用SQL,但是直接用SQL去查询,就无法直接获取两个表中的关联数据!就算能获取,相对来说还是比较复杂.

       假设,我现在关联关系 一个是UserEntity(用户),一个是DepartmentEntity(部门) 它们直接是多对多关系!

因为采取的是hibernate的注解 @JoinTable 。所以中间实体(Entity)就没有去建立。

   当时,我就在纠结怎么获取当中的数据。解决办法如下:

SELECT  dep_tab FROM DepartmentEntity dep_tab
               left join dep_tab.userEntity user_tab 
              where user_tab.userId = 1

  上面信息是通过UserID查询出该用户 所任职的岗位。 记得是DepartmentEntity 实体“.” 出用户实体。当然也可以通过用户实体“.”出。因为本身是对对关系,就看你查询所用到的条件了。

   在上述查询的时候,切记不能写为 select * ,否则会报如下异常:

 

unexpected token: * near line 1, 

 

 

 

 

上一篇:

下一篇: