| Criteria查詢對(duì)查詢條件進(jìn)行了面向?qū)ο蠓庋b,符合編程人員的思維方式,不過HQL(Hibernate Query Language)查詢提供了更加豐富的和靈活的查詢特性,因此Hibernate將HQL查詢方式立為官方推薦的標(biāo)準(zhǔn)查詢方式,HQL查詢?cè)诤wCriteria查詢的所有功能的前提下,提供了類似標(biāo)準(zhǔn)SQL語句的查詢方式,同時(shí)也提供了更加面向?qū)ο蟮姆庋b。以下就是HQL的一些常用函數(shù),有了這些函數(shù),我們就可以擁有更多的靈活性,比如HQL如何取余,HQL如何返回集合的最值,HQL字符串處理,HQL時(shí)間、日期處理等。 
| 函數(shù)名稱 | 說明 | 類型 | 支持 | 使用方法 | 備注 |  
| ABS(n) | 取絕對(duì)值 | 數(shù)學(xué)函數(shù) | JPAQL HQL | ABS(column_name[數(shù)字類型對(duì)象屬性]) |  |  
| SQRT(n) | 取平方根 | 數(shù)學(xué)函數(shù) | JPAQL HQL | SQRT(column_name[數(shù)字類型對(duì)象屬性]) |  |  
| MOD(x,y) | 取余數(shù) | 數(shù)學(xué)函數(shù) | JPAQL HQL | MOD([對(duì)象屬性(數(shù)字)或值],[對(duì)象屬性(數(shù)字)或值]) | 數(shù)字必須是整型,返回參數(shù)1/參數(shù)2得的余數(shù) |  
| SIZE(c) | 方法集合內(nèi)對(duì)象數(shù)量 | 集合函數(shù) | JPAQL HQL |  |  |  
| MINELEMENT(c) | 返回集合中最小元素 | 集合函數(shù) | HQL |  |  |  
| MAXELEMENT(c) | 返回集合中最大元素 | 集合函數(shù) | HQL |  |  |  
| MININDEX(c) | 返回索引集合最小索引 | 集合函數(shù) | HQL |  |  |  
| MAXINDEX(c) | 返回索引集合最大索引 | 集合函數(shù) | HQL |  |  |  
| MAX(n) | 返回最大值 | 集合函數(shù) | JPQHQL HQL |  |  |  
| MIN(n) | 返回最小值 | 集合函數(shù) | JPQHQL HQL |  |  |  
| COUNT(n) | 返回計(jì)數(shù) | 集合函數(shù) | JPQHQL HQL |  |  |  
| CONCAT(s1,s2) | 連接連個(gè)字符串 | 字符串函數(shù) | JPQHQL HQL | CONCAT([對(duì)象屬性],[對(duì)象屬性]) |  |  
| SUBSTRING(s,offset,length) | 返回子串 | 字符串函數(shù) | JPQHQL HQL | SUBSTRING([要截取的字符串屬性字段],開始位置,截取長度) |  |  
| TRIM([[BOTH/LEADING/TRAILING]] char FROM s) | 默認(rèn)去掉字符串兩面的空格 | 字符串函數(shù) | JPQHQL HQL | TRIM([字符串對(duì)象屬性列]) | 將字段兩端的空格去掉 |  
| LOWER(s) | 小寫 | 字符串函數(shù) | JPQHQL HQL | LOWER([字符串對(duì)象屬性列]) | 將該列結(jié)果含有的字母全部大寫 |  
| UPPER(s) | 大寫 | 字符串函數(shù) | JPQHQL HQL | UPPER([字符串對(duì)象屬性列]) | 將該列結(jié)果含有的字母全部大寫 |  
| LENGTH(s) | 返回字符串長度 | 字符串函數(shù) | JPQHQL HQL | LENGTH(字段名) | 返回字段內(nèi)容的長度,包括數(shù)字。null值返回null. |  
| CURRENT_DATE() | 返回?cái)?shù)據(jù)庫當(dāng)前日期 | 時(shí)間函數(shù) | JPAQL HQL | CURRENT_DATE() | 返回?cái)?shù)據(jù)庫當(dāng)前日期 |  
| CURRENT_TIME() | 時(shí)間 | 時(shí)間函數(shù) | JPAQL HQL | CURRENT_TIME() | 返回?cái)?shù)據(jù)庫當(dāng)前時(shí)間 |  
| SECOND(d) | 從日期中提取具體秒 | 時(shí)間函數(shù) | HQL | SECOND(時(shí)間字段) | 空的時(shí)候返回null |  
| MINUTE(d) | 從日期中提取具體分 | 時(shí)間函數(shù) | HQL | MINUTE(時(shí)間字段) | 空的時(shí)候返回null |  
| HOUR(d) | 從日期中提取具體小時(shí) | 時(shí)間函數(shù) | HQL | HOUR(時(shí)間字段 | 空的時(shí)候返回null |  
| DAY(d) | 從日期中提取具體天 | 時(shí)間函數(shù) | HQL | DAY(時(shí)間字段) | 空的時(shí)候返回null |  
| MONTH(d) | 從日期中提取具體月 | 時(shí)間函數(shù) | HQL | MONTH(時(shí)間字段) | 空的時(shí)候返回null |  
| YEAR(d) | 從日期中提取具體年 | 時(shí)間函數(shù) | HQL | YEAR(時(shí)間字段) | 空的時(shí)候返回null |    
 
 
 |