1、属性查询
1.1、单个属性查询
1.3、动态构造对象实例,前提要有相应的构造函数
1.4、存放在一个List
对象中
1.5、Map
该查询返回了一个 Map 的对象,内容是别名与被选择的值组成的名-值映射2.1、命名参数和?占位符
2.2、封装参数(对象属性必须与命名参数名一致)
实现: 3、聚合函数5、分页
Hibernate提供:
或
6、HQL查询性能优化6.1、避免使用or操作,使用in替代;避免使用not、like的特殊形式、having子句、distinct6.2、所以在以下情况下失效:
①对字段使用函数;
②对字段进行计算,如price+10;
③某些情况下的like操作;
④某些情况下使用not,如not(price>1800);
⑤在where中使用or时,有一个字段没有索引,那么其它字段的索引将不起作用;
7、连接查询
7.1、内连接:inner join
7.2、外连接
7.2.1、右外连接
7.2.2、左外连接
from Emp e left join fetch e.dept d
8、命名查询
首先在class同级节点上配置
通过Query q=session.getNamedQuery("test");方法获得该查询语句9.1查询
9.2命名查询
XML配置
10、过滤集合
集合过滤器(filter)是一种用于一个持久化集合或者数组的特殊的查询。查询字符串中可以使用 "this" 来引用集合中的当前元素。