Hibernate:HQL查询

Posted yy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate:HQL查询相关的知识,希望对你有一定的参考价值。

  • 概述

Hibernate提供了以下几种检索对象的方式

1)导航对象图检索方式:根据已经加载的对象导航到其他对象;

2)OID检索方式:按照对象的OID来检索对象;

3)HQL检索方式:使用面向对象的HQL查询语言;

4)QBC检索方式:使用QBC(Query By Criteria)API来检索对象。这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口。

5)本地SQL检索的方式:使用本地数据的SQL查询语句。

HQL(Hibernate Query Language)面向对象的查询语言,它和SQL查询语言有些相似。在Hibernate提供的各种检索方式中,HQL是使用最广泛的一种检索方式。它有如下功能:

1)在查询语句中设定各种查询条件

2)支持投影查询,即仅检索出对象的部分属性

3)支持分页查询

4)支持连接查询

5)支持分组查询,允许使用“HAVING”和“GROUP BY”关键字

6)提供内置聚集函数,如:SUM()、MIN()、Max()

7)支持子查询

8)支持动态绑定参数

9)能够调用用户定义的SQL函数或标准的SQL函数。

HQL检索方式包括以下步骤

1)通过Session的createQuery()方法创建一个Query对象,它包括一个HQL查询语句。HQL查询语句中可以包括命名参数

2)动态绑定参数

3)调用Query相关方法执行查询语句

Query接口支持方法链编程风格

  它的setXxx()方法返回自身实例,而不是void类型。

HQL vs SQL

1)HQL查询语句是面向对象的,Hibernate负责解析HQL查询语句,然后根据对象-关系映射文件中的映射信息,把HQL查询语句翻译成相应的SQL语句。HQL查询语句中的主题是域模型中的类与类的属性

2)SQL查询语句是与关系数据库绑定在一起的。SQL查询语句中的主体是数据库表及表的字段。

绑定参数

1)Hibernate的参数绑定机制依赖于JDBC API中的PreparedStatement的预定义SQL语句功能。

2)HQL的参数绑定两种形式:

  按参数名称绑定:在HQL查询语句定义命名参数,命名参数以“.”开头

  按参数位置绑定:在HQL查询语句中用“?”来定定义参数位置

3)相关参数

  setEntity():把参数与一个持久类绑定

  setParamenter():绑定任意类型的参数,该方式的第三个参数显式指定Hibernate映射类性。

HQL采用ORDER BY关键字对查询结果排序

 

以上是关于Hibernate:HQL查询的主要内容,如果未能解决你的问题,请参考以下文章

hibernate hql查询 与Criteria 查询语句区别和效率

类型:。net;问题:HQL;结果:HQL: Hibernate查询语言

hibernate之HQL

HQL单表查询 ---- Hibernate之查询语句

Hibernate查询

hibernate的hql语句条件查询查不到结果?