一、HQL语法:
(一)基础语法
1、创建sql查询语句。
简单写法:String sql = " from Customer ";
完整写法:String sql = " from cn.xxx.bean.Customer;
2、获取Query查询对象。
使用Session对象调用创建Query查询对象的方法。
Query query = session.createQuery(sql);
3、调用Query对象的查询方法。
List list = query.list();
(二)排序查询。
降序:“ from Customer order by cust_id desc”
升序:“ from Customer order by cust_id asc”
(三)条件查询。
1、创建sql语法。
String sql = “ from Customer where cust_id = ?”
String sql2 = “ from Customer where cust_id = :id”
2、获取查询对象。
Query query = session.createQuery(sql);
3、设置查询条件。
query.setParameter(0, 2l); // 这里的0代表的是第一个占位符。
query.setParameter("id", 2l);
4、调用查询方法。
(四)分页查询。
调用Query对象中一系列Set方法。
query.setFirstResult(0); // 设置开始页。
query.setMaxResult(5); // 设置分页的大小。
调用query的查询方法即可。
(五)聚合函数。
数量:String sql = " select count(*) from Customer ";
求和:String sql = " select sum(cust_id) from Customer ";
平均值:String sql = " select avg(cust_id) from Customer ";
最大值:String sql = " select max(cust_id) from Customer ";
最小值:String sql = " select min(cust_id) from Customer ";
(六)多表查询。
1、原生的SQL。
隐式内连接:select * from A, B where B.aid = A.id;
显示内连接:select * from A inner join B on B.aid = A.id;
外连接:select * from A left outer join B on B.aid = A.id; 左外连接 outer可省略 将left换为right时为右外连接。
2、HQL语法。
内连接:String sql = " from Customer C inner join C.linkMens ";
注意:需要将查询结果直接映射到对象时,要在SQL查询语法中加上fetch。
String sql = " from Customer C inner join fetch C.linkMens ";
List<Customer> list = query.list();
外连接:" select Customer C left join C.linkMens ";
" select Customer C right join C.linkMens ";
标签:Customer,Hibernate,String,语法,HQL,sql,query,id,select From: https://www.cnblogs.com/sfwu/p/16800589.html