注:原创作品,分享以供交流学习,转载请注明出处
本博文实例假定:
1,Person是 一个实体类。
2. Person类中有一个关联实体Event 属性名为:myEvent
3. ClessTest 是一个实体类。
第一:HQL from语句
1,
from Person 或者 from Person as p
结果类型:List<Person>
2,
from Person as p where p.myEvent.title = :title
hibernate3.2.3之前总是对的。
hibernate3.2.3之后如果myEvent是普通属性或关联的实体
也是对的,如果myEvent是一个集合会出异常
因此hibernate推荐使用下面的方式:
select p from Person as p inner join p.myEvent as e
where e.title = :title
和上面的语句是等效的。
查出的结果是:List<Person>
3,
from Person as p
inner join p.myEvent as event
where event.title = : title
结果类型: List<Person,Event>
4,
from Person as p
inner join p.myEvent as event
where event.title = : title
查询出来是:是一个集合,集合元素是Person,myEvent组成的数组。
结果类型: List<Person,Event>
5,
from Person as p
left outer join p.myEvent as event
where event.title = : title
查询出来是:是一个集合,集合元素是Person,myEvent组成的数组。
结果类型: List<Person,Event>
6,
from Person as p
right outer join p.myEvent as event
where event.title = : title
结果类型: List<Person,Event>
7,
from Person as p
full join p.myEvent as event
where event.title = : title
结果类型: List<Person,Event>
第二:HQL select语句
1,
select p.name from Person as p
结果类型: List<String>
2,
select p.name,p from Person as p
结果类型: List<Object[String,Person]>
3,
select new List(p.name,p.address) from Person as p
结果类型:List<String,String>
4,
select new ClassTest(p.name,p.address) from Person as p
前提ClassTest 类有两个参数的构造器。
结果类型:List<ClassTest>
5,
select new map(p.name as personName) from Person as p
结果类型: List<Map<String,String>>
6,
select p.name || - || p.address from Person as p
结果类型:List<String>
分享到:
相关推荐
Hibernate HQL 查询语句是 Hibernate 框架中的一种查询语言,它提供了更加丰富的和灵活的查询特性,具有类似标准 SQL 语句的查询方式,同时也提供了更加面向对象的封装。以下是 Hibernate HQL 查询语句的知识点总结...
其中,HQL(Hibernate Query Language)作为Hibernate提供的查询语言之一,允许开发者以接近面向对象的方式编写查询语句。本文将重点介绍Hibernate中的关联查询,并深入探讨HQL关联查询的实现原理及应用场景。 ####...
其内置的HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询。本文将对Hibernate HQL查询语法进行总结,涵盖基础查询、属性查询、实例化查询以及查询链接等多个...
### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...
在这种情况下,我们需要使用 Hibernate 的 HQL 语言来编写查询语句,以便检索和操作数据。 在这个例子中,我们有三个实体类:Menu、Privilege 和中间表 menu_privilege。Menu 实体类中有一个 privileges 列表字段,...
在 Hibernate 中,所有的查询都是通过 `Query` 对象来实现的,可以通过 `Session` 对象的 `createQuery` 方法创建 `Query` 对象,并传入 HQL 语句。 ##### 1. 查询所有对象 以查询所有图书类别为例,HQL 语句如下:...
2. 子查询:可以在WHERE或HAVING子句中嵌套HQL查询,如“SELECT u FROM User u WHERE u.id IN (SELECT f.userId FROM Friend f WHERE f.friendId=100)”。 3. 动态HQL:通过Criteria API或Query接口,可以构建动态...
### Hibernate 查询语句 -- HQL #### 概述 Hibernate 是一个开源的对象关系映射 (ORM) 框架,它允许开发人员将 Java 对象映射到数据库表中的记录,从而简化了数据访问逻辑。在 Hibernate 中,执行查询操作的主要...
HQL的全称是?...HQL语句为:select jd.jdid,jd.jd from TblJd jd。怎样获得并显示查询结果? 使用'?'做占位符的参数查询,怎样设置参数的值? 命名参数查询的语法是? 怎样创建Criteria查询对象?
总之,Hibernate的HQL语句为开发者提供了强大的面向对象的数据库查询工具,它简化了对象与数据库之间的交互,使得SSH框架下的数据操作更为灵活和高效。熟练掌握HQL,有助于提升开发效率和项目质量。
本程序“HibernateHql综合测试小程序”是针对Hibernate中的HQL(Hibernate Query Language)进行的一系列功能测试,涵盖了二十多种不同的HQL语句,旨在帮助开发者深入理解和熟练运用Hibernate的查询能力。...
Hibernate HQL是一种面向对象的查询语言,它允许开发人员以一种更加自然的方式来表达数据库查询,而无需直接编写SQL语句。HQL提供了类似于SQL的强大查询能力,但更符合面向对象编程的思维方式,这使得它在处理持久化...
HQL(Hibernate Query Language)是Hibernate框架中用于查询数据的一种语言。它类似于SQL,但面向对象特性更明显,可以更加灵活地处理复杂的对象图关系。HQL支持基本的查询操作如选择、更新、删除等,并且可以方便地...
需要注意的是,在Hibernate中查询时,如果实体之间存在继承关系(如`Employee`类继承自`HourlyEmployee`和`SalariedEmployee`),则可以通过类似`"from Employee"`这样的HQL语句来查询基类`Employee`的所有子类实例...
HQL查询语句结构通常包括以下几个部分:`SELECT`, `FROM`, `WHERE`, `GROUP BY`, `HAVING`, `ORDER BY`。这些关键字与SQL中的用法类似,但HQL中的对象和属性是基于Java类和它们的成员。 例如,假设我们有一个`...
然而,在一些情况下,我们需要直接执行原生 SQL 语句,而不是使用 Hibernate 的查询语言(HQL)。本文将介绍如何使用 Hibernate 执行原生 SQL 语句。 为什么需要执行原生 SQL 语句 在实际开发中,我们可能需要执行...
Hibernate Query Language(HQL)是一种面向对象的查询语言,其语法与SQL相似但并非完全相同。HQL的设计旨在更好地支持面向对象编程特性,比如继承、多态以及关联等概念。通过HQL,开发人员可以在不牺牲对象模型灵活...
Hibernate中HQL语句的使用 ...HQL语句可以用于各种查询场景,包括简单属性查询、多个属性的查询、使用别名、实体对象查询、外置命名查询、查询过滤器、分页查询、对象导航查询、连接查询和统计查询等。
### Hibernate 课件_HQL 知识点解析 #### HQL查询 ...这些知识点涵盖了HQL的基本概念、查询方法、各种高级查询技巧以及Session的管理等方面,希望能够帮助大家更好地理解和掌握Hibernate的HQL查询技术。