HQL(Hibernate Query Language) 提供了丰富的、灵活的查询特性,提供了类似标准SQL语句的查询方式,同时也提供了面向对象的封装。以下是HQL的一些常用函数,比如时间函数、字符串函数等。
时间函数
函数名称 | 说明 | 支持 | 使用方法 | 备注 |
---|---|---|---|---|
CURRENT_DATE() | 数据库当前日期 | JPAQL、HQL | CURRENT_DATE() | |
CURRENT_TIME() | 数据库当前时间 | JPAQL、HQL | CURRENT_TIME() | |
CURRENT_TIMESTAMP() | 数据库当前日期+时间 | JPAQL、HQL | CURRENT_TIMESTAMP() | |
SECOND(d) | 日期中提取秒 | HQL | SECOND(时间字段) | 空的时候返回null |
MINUTE(d) | 日期中提取分 | HQL | MINUTE(时间字段) | 空的时候返回null |
HOUR(d) | 日期中提取小时 | HQL | HOUR(时间字段) | 空的时候返回null |
DAY(d) | 日期中提取天 | HQL | DAY(时间字段) | 空的时候返回null |
MONTH(d) | 日期中提取月 | HQL | MONTH(时间字段) | 空的时候返回null |
YEAR(d) | 日期中提取年 | HQL | YEAR(时间字段) | 空的时候返回null |
字符串函数
函数名称 | 说明 | 支持 | 使用方法 | 备注 |
---|---|---|---|---|
SUBSTRIGN(s,offset,length) | 字符截取 | JPAQL、HQL | ||
TRIM(s) | 去掉两端的空格 | JPAQL、HQL | ||
LOWER(s) | 转换小写 | JPAQL、HQL | ||
UPPER(s) | 转换大写 | JPAQL、HQL | ||
LENGTH(s) | 字符长度 | JPAQL、HQL | ||
CONCAT(s1,s2) | 连接字符串 | JPAQL、HQL |
数学函数
函数名称 | 说明 | 支持 | 使用方法 | 备注 |
---|---|---|---|---|
ABS(n) | 取绝对值 | JPAQL、HQL | ABS(col_name[数字类型对象属性]) | |
SQRT(n) | 取平方根 | JPAQL、HQL | SQRT(col_name[数字类型对象属性]) | |
MOD(n1, n2) | 取余数 | JPAQL、HQL | MOD([对象属性(数字)或值],[对象属性(数字)或值]) | 数字必须是整型 |
集合函数
函数名称 | 说明 | 支持 | 使用方法 | 备注 |
---|---|---|---|---|
MAX(c) | 最大值 | JPQHQL 、HQL | ||
MIN(c) | 最小值 | JPQHQL 、HQL | ||
COUNT(c) | 返回计数 | JPQHQL 、HQL | ||
SIZE(c) | 方法集合内对象数量 | JPAQL HQL | ||
MINELEMENT(c) | 返回集合中最小元素 | HQL | ||
MAXELEMENT(c) | 返回集合中最大元素 | HQL | ||
MININDEX(c) | 返回索引集合最小索引 | HQL | ||
MAXINDEX(c) | 返回索引集合最大索引 | HQL |