首页 > 其他分享 >Hibernate的HQL查询语法

Hibernate的HQL查询语法

时间:2022-10-17 21:44:41浏览次数:44  
标签:Customer Hibernate String 语法 HQL sql query id select

一、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

相关文章