`
shendixiong
  • 浏览: 399465 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
阅读更多

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

 

 

 

 

1
2
分享到:
评论
2 楼 shendixiong 2015-02-04  
fushun 写道
非常感谢,看另外的写的是inner,结果老报错,换成left就ok了

相互学习!
1 楼 fushun 2015-01-22  
非常感谢,看另外的写的是inner,结果老报错,换成left就ok了

相关推荐

    hibernate多表联合查询

    ### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理...

    Hibernate-HQL.rar_HQL_hibernate hql

    HQL是Hibernate提供的面向对象的查询语言,它与SQL类似,但它是基于对象而非表进行操作。HQL允许开发者以类名和属性名代替表名和列名,使得代码更具可读性和可维护性。例如,查询所有User对象的HQL语句为:“FROM ...

    Hibernate HQL查询.docx

    ### Hibernate HQL 查询详解 #### 一、HQL 概述 Hibernate 提供了一种非常强大的查询语言——HQL(Hibernate Query Language),它在...无论是简单的查询还是复杂的多表关联查询,HQL 都能提供简洁高效的解决方案。

    HibernateHql综合测试小程序

    本程序“HibernateHql综合测试小程序”是针对Hibernate中的HQL(Hibernate Query Language)进行的一系列功能测试,涵盖了二十多种不同的HQL语句,旨在帮助开发者深入理解和熟练运用Hibernate的查询能力。...

    hibernate hql where语句拼接工具类

    HQL(Hibernate Query Language)是Hibernate提供的一个SQL的面向对象的查询语言,它使得开发者可以避免直接编写SQL语句,从而更好地进行数据库操作。本文将深入探讨“hibernate hql where语句拼接工具类”,并结合...

    hibernate_hql.rar_HQL

    HQL允许在查询中嵌套查询,子查询可以作为查询条件或者返回结果的一部分。比如,找出年龄大于平均年龄的用户: ```java String hql = "from User where age > (select avg(age) from User)"; ``` 六、HQL关联查询 ...

    hibernate-HQL用例

    HQL允许在查询语句中嵌套查询,这对于复杂条件的筛选非常有用。如找出年龄大于所有用户平均年龄的用户: ```sql SELECT u FROM User u WHERE u.age > (SELECT AVG(age) FROM User) ``` 6. **参数绑定** HQL...

    hibernate3.2 (十)HQL查询

    HQL是Hibernate的核心特性之一,它允许开发者使用类和属性名称而不是表和列名进行查询,从而降低了数据库的耦合度。HQL查询语句的结构与SQL类似,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等子句,但它...

    hibernate的hql语句

    7. **子查询**:HQL允许在查询语句中嵌套查询,以实现复杂的数据过滤。例如,`select c from Cat c where c.mate in (select m from Mate m where m.age > 3)`,这个查询会找出所有配偶年龄大于3岁的猫。 8. **投影...

    HQL(Hibernate Query Language):

    Hibernate Query Language(HQL)是Hibernate框架中用于操作对象关系映射(ORM)的一种查询语言。它是面向对象的,设计目的是让开发人员可以使用对象而不是数据库表进行查询,从而简化了与数据库交互的过程。HQL的...

    Hibernate QBC高级查询.rar

    Query by Criteria是Hibernate提供的另一种查询方式,与HQL(Hibernate Query Language)和Criteria API相辅相成。QBC提供了一种面向对象的方式来构建查询,避免了SQL语句的硬编码,使得代码更易于维护和测试。 在...

    常用易懂,易会HQL查询

    Hibernate Query Language(HQL)是Hibernate框架提供的一种面向对象的查询语言,它允许开发者以类和属性的名称来编写查询,而不是传统的SQL中的表和列名。本文将深入探讨“常用易懂,易会”的HQL查询,帮助你快速...

    Hibernate 函数 ,子查询 和原生SQL查询

    在使用原生SQL时,需要注意的是,你需要自己处理结果的映射和事务管理,这可能比使用HQL(Hibernate查询语言)更加复杂。 总结,Hibernate提供了丰富的函数支持,使得我们在处理数据时更加便捷。同时,子查询功能...

    \Hibernate_query条件查询

    HQL是Hibernate提供的面向对象的查询语言,类似于SQL,但操作的对象是对象而非表。例如,要获取所有用户,可以使用以下HQL语句: ```java Query query = session.createQuery("from User"); List<User> users = ...

    HQL语言大全 高清晰可复制版

    - **子查询**:在HQL中,可以嵌套查询,作为WHERE子句的一部分或者在FROM子句中使用。 4. **HQL的参数绑定** 类似于SQL的预编译语句,HQL也支持参数绑定,防止SQL注入。例如: ```sql FROM Employee e WHERE e....

    精通HQL.doc

    7. **子查询**:在HQL中,你可以嵌套查询,如 `from Student s where s.id in (select s.id from Student s where s.ssex='男')`,将返回所有男学生的对象。 8. **函数和方法调用**:HQL允许你在查询中使用数据库...

    Spring--HQL-chaxun.zip_HQL

    在Spring框架中,Hibernate Query Language(HQL)是一种强大的工具,用于执行对象关系映射(ORM)查询。HQL是面向对象的查询语言,与SQL类似但更专注于处理Java对象而不是数据库表。在这个名为“Spring--HQL-chaxun...

    HQL详解

    HQL也支持子查询,可以嵌套在`SELECT`, `FROM`, `WHERE`等子句中。 ```sql SELECT p FROM Person p WHERE p.age IN (SELECT AVG(a.age) FROM AgeGroup a) ``` 这个查询会找出年龄在平均年龄之上的所有人。 ### ...

    HQL学习大全.rar

    6. **HQL的嵌套子查询.docx**:这部分将深入探讨HQL中的子查询,包括如何在查询中嵌套其他查询,以实现复杂的逻辑。 7. **HQL专题.docx**:可能是针对HQL的一些特定主题或问题的深度解析,如性能优化、动态查询等。...

Global site tag (gtag.js) - Google Analytics