HQL查询

一、HQL基本认识:

  HQL(Hibernate Query Language)提供更加丰富灵活、更为强大的查询能力;
HQL更接近SQL语句查询语法;
[select/delete/update…][from…][where…][group by…][having…][order by…]

二、HQL查询:

简单查询:

(1)单一属性:
HQL查询

(2)多个属性:
HQL查询

HQL查询

实体对象查询:

(1)List方式:
HQL查询

(2)迭代方式:
HQL查询

两者区别:

list:默认情况下list每次都会发出sql语句,list会将数据放到缓存中,而不利用缓存
iterate:默认情况下iterate利用缓存,如果缓存中不存在会出现N+1问题

条件查询:

(1)like:返回list
HQL查询

(2)占位符方法:返回query
HQL查询

(3)方法链:
HQL查询

(4)使用参数名方式:
HQL查询

HQL查询

(5)获取日期的年和月:用date_format
HQL查询

HQL查询

HQL查询

(6)两个日期间数据的查询:
HQL查询

分页查询:

HQL查询
setFirstResult(),从0开始;
setMaxResults(),每页显示的记录数

对象导航查询:

HQL查询

连接查询:

连接查询分为内连接和外连接(左连接和右连接)
1.内连接:
HQL查询
2.左连接:
HQL查询
3.右连接:
HQL查询

统计查询:

HQL查询

查询班级名称和学生人数:string hql =
HQL查询

三、总结:

  Hql是hibernate的核心查询,和sql差不多,目前学会了sql,linq,hql三种查询语言,现在学起来很轻松,多和以前学过的知识联系吧。