1 HQL的基本语法
select "属性名" from "对象"
where "条件"
group by "属性名" having "分组条件"
order by "属性名" desc / asc
2 实体对象查询
from User
3 动态实例化对象查询
select new User(id, name) from User
4 条件查询与别名
from User where id = 1
from User u where u.id = 1
from User as u where u.id = 1
5 HQL语句的动态赋值
String hql = "from User u where u.id = ?";
Query query = session.createQuery(hql);
query = query.setParameter(0,3);
list = query.list();
自定义参数名称
String hql = "from User u where u.id = :userId";
query = query.setParameter("userId",3);
6 对日期时间的处理
String hql = "from User u where date_format(u.birth,'%Y-%m') = ?";
Query query = session.createQuery(hql).setParameter(0,"1984-01");
7 join(内连接),left join,rigth join,full join(全连接)
from Student s left join s.classes c with c.id > 10;
8 聚合函数 select count(*) from User u;
select max(u.id) from User u;
9 子查询
String hql = "select med.name from Medicine med where med.price = (select max(price) from Medicine)";