`

HQL 操作符

hql 
阅读更多

HQL 常用操作符 描述
. 导航路径表达式操作符
+,- 一元正负号
*,/ 乘除法
+,- 加减法
=,<>,<,>,>=,<=,[NOT]BETWEEN[NOT] LIKE,[NOT] IN,IS [NOT] NULL,IS [NOT] EMPTY 二元比较操作符


NOT,AND,OR 逻辑操作符

HQL操作符



(b)    HQL常用函数
Sql代码
1. FROM User u where lower(u.email) = 'foo@163.com' --小写 
2. FROM User u where lower(u.email) = 'foo@163.com' --大写 
3. FROM User u where concat(u.firstname,u.lastname) like 'G% K%' --拼接字符串 
4. FROM User u where size(u.bids) > 3 --集合大小 
 
HQL 函数
HQL 常用操作符 描述
UPPER(s),LOWER(s) 大小写
CONCAT(s1,s2) 连接字符串
SUBSTRING(s,offset,length) 取子串
TRIM() 去空格
LENGTH(s) 长度
LOCATE(search,s,offset) 搜索位置
ABS(n),SQRT(n),MOD(dividend,divisor) 绝对值,开方,除法
SIZE 大小写
BIT_LENGTH(s) 位数
CUTTENT_DATE() 当前时间
CURRENT_TIME()
CURRENT_TIMESTAMP()
SECOND(d) 获取时间的不同部分
MINUTE(d)
HOUR(d)
DAY(d)
MONTH(d)
YEAR(d)
CAST(t as TYPE) 类型转换

HQL函数

节 10.03    Order表达式

Sql代码
1. FROM CUSTOMERS as customers WHERE customers.id=1  
2. ORDER BY customers.id FROM CUSTOMERS as customers  
3. ORDER BY customers.lastname asc,firstname asc 
 

节 10.04    投影查询
Sql代码
1. SELECT user.username,user.password FROM UserInfo user 
 

注:1、在使用Select子句查询时,要给表对象起一个别名。
    2、查询出的结果集是一个Object[]数组。
节 10.05    表关联
(a)    隐式关联连接
Sql代码
1. FROM User u WHERE u.homeAddress.city = 'BJ' 
2. SELECT distinct u.homeAddress.city FROM User u 
3. FROM Bid bid WHERE bid.item.description like '%FOO%' 
 

(b)    普通联结
Sql代码
1. FROM ITEM i JOIN i.bids b WHERE i.description like '%Foo%' AND b.amount > 100 
 
Java代码
1. Iterator iterator = query.list().iterator(); 
2. while(iterator.hasNext()){ 
3. Object[] pair = (Object[])iterator.next(); 
4. Item item = (Item)pair[0]; 
5. Bid bid = (Bid)pair[1]; 
6. } 
 

Sql代码
1. SELECT i FROM ITEM i JOIN i.bids b WHERE i.description like '%Foo%' AND b.amount >100 
 

Java代码
1. Iterator iterator = query.list().iterator(); 
2. while(iterator.hasNext()){ 
3. Item item = (Item)i.next();} 
 
Sql代码
1. FROM ITEM i LEFT JOIN i.bids b WITH b.amount >1000 WHERE i.description 
2. like '%Foo%' --WITH额外联结条件 
 

(c)    抓取联结
fetch 连接允许仅使用一个select语句就将关联的对象或一组集合随他们父对象的初始化而初始化。
Sql代码
1. FROM ITEM i LEFT JOIN FETCH i.bids WHERE i.description LIKE '%Foo%' 
 

注:普通联结同抓取联结的区别:
1、    生成的SQL语句虽然有连接,但是并没有取连接表的数据,还是需要单独的sql取数据。
2、    抓取联结一次性将所需要的数据装入内存中。
3、    当lazy=true时,抓取策略失效。
节 10.06    报表查询
(a)    统计函数投影
Sql代码
1. SELECT COUNT(user.id), MAX(user.id), SUM(user.id),MIN(user.id),AVG(user.score)   
2. FROM UserInfo user 
 

注:因为属于投影查询所以返回的结果为Object[]数组
(b)    分组
Sql代码
1. SELECT u.lastname,count(u) FROM User u group by u.lastname 
2. SELECT bid.item.id,avg(bid.amount) FROM Bid bid GROUP BY bid.item.id 
3. SELECT bid.item.id,count(bid),avg(bid.amount)  
4. FROM Bid bid WHERE bid.item.successfulBid IS NULL GROUP BY bid.item.id 
5. SELECT bidItem.id,count(bid),avg(bid.amount) 
6. FROM Bid bid JOIN bid.item bidItem WHERE bidItem.successfulBid IS NULL GROUP BY bidItem.id 
7. SELECT item.id,count(bid),avg(bid.amount)  
8. FROM Item item JOIN item.bids.bid WHERE item.successfulBid IS NULL  
9. GROUP BY item.id HAVING count(bid) >10 
 

节 10.07    子查询
Sql代码
1. FROM User u WHERE 10 < (SELECT count(i) from u.items i where i.successfulBid IS NOT NULL) 
2. FROM Item i WHERE 100 > all(SELECT b.amount FROM i.bids b) --出价小于100 
3. FROM Item i WHERE 100 > any(SELECT b.amount FROM i.bids b) --出价大于100 
4. FROM Item i WHERE 100 > some(SELECT b.amount FROM i.bids b)  --出价等于100 
5. FROM Item i WHERE 100 IN (SELECT b.amount FROM i.bids b)  --出价等于100 
分享到:
评论

相关推荐

    HQL语法入门学习HQL语法入门学习

    HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL...

    HQL语句大全HQL语句大全

    HQL语句大全HQL语句大全HQL语句大全HQL语句大全HQL语句大全

    HQL语句 HQL语句

    HQL语句 HQL语句 HQL语句 HQL语句 HQL语句

    hql语句大全hql语句大全

    hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全hql语句大全

    hql ppt Hql PPt

    Hql PPt Hql PPt

    HQL 详解 HQL查询

    Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询...

    HQL Eclipse Plugins 配置教程

    不喜欢使用myEclipse的...最近在项目中使用Hibernate,由于需要使用HQL,找了很多资料,大都是MyEclipse中自带的HQL工具。 由于MyEclipse是收费的,速度不是很理想。所以在网上找到了一个elipse插件 英文图文教程 ...

    hql模糊查询hql模糊查询

    hql模糊查询hql模糊查询hql模糊查询hql模糊查询

    hibernate hql基本操作

    hibernate hql基本操作

    hql语句 使用大全

    hql语句常规 方法 使用 了解hql语句

    sql转换hql工具

    之前写好SQL,再到代码里面来写,语句复杂的看的时不时细节会忘记,用sql转换hql工具,直接贴近了就可以了;

    hibernate查询之HQLhibernate查询之HQL

    hibernate查询之HQLhibernate查询之HQLhibernate查询之HQL

    HQL语法大全,并带有详细的例子

    HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征。HQL查询依赖于Query类,每个Query实例对应一个查询对象,使用HQL查询按 如下步骤进行: (1)获取Hibernate Session对象; (2)编写HQL语句; (3)以HQL...

    精通hibernate HQL语言

    精通HQL.doc精通HQL.doc精通HQL.doc精通HQL.doc精通HQL.doc

    HQL语言大全 高清晰可复制版

    HQL语言大全HQL语言大全HQL语言大全

    Hibernate查询语言HQL.PPT

    Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...

    HQL查询语言基础知识

    HQL查询语言基础,HQL查询语言基础,HQL查询语言基础

    HQL查询语言基础.

    HQL查询语言基础.

    hibernate-hql 资料大全

    hibernate hql 语言大全 hql学习,这个文档是一个很全面,很不错的

    hql多表查询

    hql多表查询hql多表查询hql多表查询

Global site tag (gtag.js) - Google Analytics