标签:
HQL(Hibernate Query Language)查询语言是完全面向对象的查询语言,它提供了更加面向对象的封装,它可以理解如多态、继承和关联的概念。HQL看上去和SQL语句相似,但它却提供了更加强大的查询功能。
HQL语句与SQL语句是相似的,其基本的使用习惯也与SQL相同。由于HQL是面向对象的查询语言,说以它需要从目标对象中查询信息并返回匹配单个实体对象或多个实体对象的集合,而SQL语句是从数据库表中查找指定的信息,返回的是单条信息或多条信息的集合。
HQL的基本语法如下:
select "对象.属性名" from "对象" where "过滤条件" group by "对象.属性名" having "分组条件" order by "对象.属性名"
select * from Employee emp where emp.flag="1"
该语句等价于:
from Employee emp where emp.flag="1"
其中Employee为实体对象。Hibernate在3.0版本以后可以使用HQL执行update和delete的操作,但是并不推荐使用这种方式。
在HQL语句中,可以通过from字句对实体对象进行直接查询。
from Person
在大多数情况下,最好为查询的实体对象指定一个别名,方便在查询语句的其它地方引用实体对象。别名的命名方法如下:
from Person per
上面的HQL语句将查询数据库中实体对象Person所对应的所有数据,并以封装好的Person对象的集合形式返回。
select Person(id,name) from Person per
这种查询方式,通过new关键字对实体对象动态实例化,将指定的实体对象属性进行重新封装,既不失去数据的封装性,又可提高查询的效率。
select per.id,per.name from Person per
更详细的内容参见下面的链接:
标签:
原文地址:http://www.cnblogs.com/gaopeng527/p/4472114.html