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,
推荐阅读
-
hibernate hql 嵌套查询(中间表查询)
-
Hibernate hql 查询指定字段并获取结果集
-
Hibernate hql查询代码实例
-
Django ManyToManyField 跨越中间表查询的方法
-
用一张表来存储数据状态,并且可以进行多状态精确查询;使用二进制来表示数据状态,并且是可以无顺序的状态;解决使用中间表来存储数据的多状态;数据状态还可以这么玩;
-
hibernate多表查询中单表的同一条记录内存共享时弊病的处理
-
hibernate多表查询中单表的同一条记录内存共享时弊病的处理
-
Hibernate 的HQL,QBC 查询语言
-
hibernate框架学习笔记10:HQL查询详解
-
Oracle多表查询中间表的创建实例教程