我们在用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,
?
?
?
?