Spring HQL

Posted lyslyslyslyslys

tags:

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

HQL(Hibernate Query Language) 是Hibernate框架提供的一种查询机制,它和 SQL 查询语言很相似。不同的是HQL是面向对象的查询语言,让开发者能够以面向对象的思想来编写查询语句,对Java编程来说是很好的一种方式。

 

但是HQL语言是不能直接与数据库进行交互的,它是中间层的语言,Hibernate框架会将其翻译成底层数据库能够识别的SQL语言,与数据库进行交互。

 

需要注意的是,HQL语言不能直接进行insert操作,select,delete,update是支持的。

 

1.实体对象查询  

查询表中的所有数据,自动完成对象封装,返回List集合。

HQL进行查询操作,若省略select关键字,则查询所有字段,from关键字后面不能写表名,必须写数据表对应的实体类名。

 

2.分页查询

HQL分页查询可以通过调用query的方法来完成。

1.setFirstResult():设置截取的起始下标。

2.setMaxResults():设置截取记录的长度。

 

3.where条件查询

HQL直接追加where关键字设置查询条件,与SQL没有区别。

 

4.模糊查询

 

5.order by

 

6.group by 

 

7.group by having

 

8.查询实体对象的属性

 

9.占位符

HQL的占位符通过下标进行替换。

需要注意的是HQL中占位符的下标从0开始,JDBC的占位符下标从1开始。

使用query的set*方法来替换变量,根据变量的类型来决定调用哪个方法。

如int类型则调用setInteger(),String类型调用setString()。

 

10.参数

跟占位符类似,用变量替换HQL语句中的值,需要注意的是在HQL语句中参数名前要加:。

 

11.级联查询

HQL是面向对象的查询语言,所以不需要通过数据表的外键关联,可直接通过实体类的级联关系进行设置。

 

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

Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC

学习笔记——Spring简介;Spring搭建步骤;Spring的特性;Spring中getBean三种方式;Spring中的标签

Spring--Spring入门

Spring框架--Spring事务管理和Spring事务传播行为

Spring框架--Spring事务管理和Spring事务传播行为

Spring框架--Spring JDBC