1. 查询整个对象 也是最常用的方式:
from 类名 where 类名.属性名=‘’
2. 属性查询 之前遇到需要对象一部分属性的时候,采用的是sql查询,但是获取的对象是个object数组,还要自己组装对象,加上非空判断什么的,代码很是臃肿,用这种属性查询,可以直接查询对象的部分属性
select new 类名(o.属性名,o。属性名 ....) from 类名 o
但是这种用法需要注意: 需要有对应的构造函数,否则会抛出异常
3. 连接查询 同理,用sql连接查询,获取的也是一个object数组,而hql的连接查询,会获取到一个完整的对象
from 类名1 o inner join fetch 类名2
4. 子查询
from 类名 o where o.name in ( select name from 类名 group by ** having count(*)>2)