在HQL中关键字不区分大小写,但是属性和类名区分大小写
1、简单的属性查询
*单一的属性查询,返回结果集属性列表,元素类型和实体类型中对应的实体一致
*多个属性查询,返回的集合元素是对象数组,数组元素的类型和对应的属性在实体中的类型一致,数组的长度取决与、
SELECT 中属性的个数,如果认为数组不理想,可以采用HQL的动态实例化对象。
2、实体对象查询
*N+1问题,在默认情况下,使用query,iterator查询,有可能出现N+1问题,所谓的N+1是在查询的时候发出N+1条
sql查询语句。
1:首先发出一条查询对象id列表的sql语句。
N:根据id列表到缓存中查询,如果缓存中不存在与之对应的数据,那么会根据id发出对应的SQL语句
*list和iteror的区别
*list每次都会发出SQL语句,list会向缓存中放入数据,而不利用缓存中的数据
*iterator在默认情况下利用缓存中的数据,但如果缓存中没有所对应的数据可能会出现N+1问题
3、条件查询语句
*可以采用拼接字符串的方式传递参数
*可以采用?来传递参数(索引从0开始)
*可以采用“:参数名”来传递参数
*如果传递多个参数,可以采用setParamterList方法
*在hql中可以使用数据库的函数,如:date_format
4、Hibernate也支持直接使用sql进行查询
5、外置命名查询
*在映射文件中采用<query>标签定义hql
*在程序中采用session.getNameQuery()方法得到hql查询串
6、查询过滤器
*在映射文件中定义过滤器参数
*在类的映射中使用这些参数
*在程序中启用过滤器
7、分页查询
*setFirstResult(firstResult),从firstResult开始
*setMaxResult(maxResult),每页显示多少maxResult条数据
8、对象导航查询
*在hql中采用“.”进行对象导航查询
9、连接查询
*内连接 select c.name,s.name from Student s join s.classes c
*外连接
@左连接:select c.name,s.name from Classes c left join c.students s
@右连接:select c.name,s.name from Classes c right join c.students s
10、统计查询
*select count(*) from Student
*select c.name,count(s) from Student s join s.classes c group by c.name order by c.name
分享到:
相关推荐
Hibernate查询语言HQL
Hibernate查询语言HQL.PPT
NULL 博文链接:https://iblike.iteye.com/blog/795755
hibernate 查询语言 HQL的使用详解及实例, 个人笔记,适合初学者
HQL Hibernate查询语言,HQL的学习和参考的文档,开发必备。
HQL中文语法参考, 详细描述hibernate 查询语言的各种语法,是不可多得的HQL中文参考资料!
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。
hibernate映射lazy策略hibernate查询语言hql
Hibernate 学习笔记 get和load的区别 一对一,一对多,多对多 悲观锁,乐观锁 hibernate查询语言hql hibernate一级缓存、二级缓存 抓取策略
HQL查询是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念,HQL 是应用较为广泛的方式.这是本人对HQL知识点做的一个总结性的练习
此书对Hibernate的查询语言hql进行详细的介绍,用来做工具书还是很不错的。
Hibernate 配备了一种非常强大的查询语言,这种语言看上去很像 SQL。但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。
HQL :是面向对象的查询语言,同SQL有些相似是Hib中最常用的方式。 查询设定各种查询条件。 支持投影查询,检索出对象的部分属性。 支持分页查询,允许使用having和group by 提供内制的聚集函数,sum(),min(),max...
HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征。HQL查询依赖于Query类,每个Query实例对应一个查询对象,使用HQL查询按 如下步骤进行: (1)获取Hibernate Session对象; (2)编写HQL语句; (3)以HQL...
HQL:Hibernate Qusery Language,如果你已经熟悉它,就会发现它跟SQL非常相像。不过 你不要被表面的假象迷惑,HQL是面向对象的(OO,用生命的眼光看待每一个对象,他们是如此 鲜活)。如果你对JAVA和SQL语句有一定...
Hibernate提供了它特有的数据库查询语言HQL,这种查询语言屏蔽了不同数据库之间的差别,使你可以编写统一的查询语句执行查询。不同于其他持久化解决方案的是Hibernate并没有把SQL的强大功能屏蔽掉,而是仍然兼容SQL...
HQL是Hibernate Query Language的缩写,语法很想SQL,但是HQL是一种面向对象的查询语言。SQL的操作对象是数据列、表等数据库对象,而HQL操作的是类、实例、属性