via: http://blog.csdn.net/chenhuade85/article/details/7572148
Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。以下就是HQL的一些常用函数,有了这些函数,我们就可以拥有更多的灵活性,比如HQL如何取余,HQL如何返回集合的最值,HQL字符串处理,HQL时间、日期处理等。
函数名称 | 说明 | 类型 | 支持 | 使用方法 | 备注 |
ABS(n) | 取绝对值 | 数学函数 | JPAQL HQL | ABS(column_name[数字类型对象属性]) | |
SQRT(n) | 取平方根 | 数学函数 | JPAQL HQL | SQRT(column_name[数字类型对象属性]) | |
MOD(x,y) | 取余数 | 数学函数 | JPAQL HQL | MOD([对象属性(数字)或值],[对象属性(数字)或值]) | 数字必须是整型,返回参数1/参数2得的余数 |
SIZE(c) | 方法集合内对象数量 | 集合函数 | JPAQL HQL | ||
MINELEMENT(c) | 返回集合中最小元素 | 集合函数 | HQL | ||
MAXELEMENT(c) | 返回集合中最大元素 | 集合函数 | HQL | ||
MININDEX(c) | 返回索引集合最小索引 | 集合函数 | HQL | ||
MAXINDEX(c) | 返回索引集合最大索引 | 集合函数 | HQL | ||
MAX(n) | 返回最大值 | 集合函数 | JPQHQL HQL | ||
MIN(n) | 返回最小值 | 集合函数 | JPQHQL HQL | ||
COUNT(n) | 返回计数 | 集合函数 | JPQHQL HQL | ||
CONCAT(s1,s2) | 连接连个字符串 | 字符串函数 | JPQHQL HQL | CONCAT([对象属性],[对象属性]) | |
SUBSTRING(s,offset,length) | 返回子串 | 字符串函数 | JPQHQL HQL | SUBSTRING([要截取的字符串属性字段],开始位置,截取长度) | |
TRIM([[BOTH/LEADING/TRAILING]] char FROM s) | 默认去掉字符串两面的空格 | 字符串函数 | JPQHQL HQL | TRIM([字符串对象属性列]) | 将字段两端的空格去掉 |
LOWER(s) | 小写 | 字符串函数 | JPQHQL HQL | LOWER([字符串对象属性列]) | 将该列结果含有的字母全部大写 |
UPPER(s) | 大写 | 字符串函数 | JPQHQL HQL | UPPER([字符串对象属性列]) | 将该列结果含有的字母全部大写 |
LENGTH(s) | 返回字符串长度 | 字符串函数 | JPQHQL HQL | LENGTH(字段名) | 返回字段内容的长度,包括数字。null值返回null. |
CURRENT_DATE() | 返回数据库当前日期 | 时间函数 | JPAQL HQL | CURRENT_DATE() | 返回数据库当前日期 |
CURRENT_TIME() | 时间 | 时间函数 | JPAQL HQL | CURRENT_TIME() | 返回数据库当前时间 |
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 |
相关推荐
本篇主要探讨的是Hibernate对数据库查询中聚合函数的应用,这些功能使我们能够高效地处理数据统计和汇总任务。在学习过程中,我们经常会遇到诸如求和(SUM)、平均值(AVG)、最大值(MAX)、最小值(MIN)以及计数...
根据提供的文件信息,我们可以深入探讨Hibernate HQL(Hibernate Query Language)的相关知识点,特别是关于其查询功能、连接操作、条件过滤以及聚合函数的应用等。 ### Hibernate HQL简介 Hibernate HQL是一种...
本篇将详细探讨"查询和并发"这一主题,结合`hibernate_06_hql`、`hibernate_07_criteria`及`hb_08_concurrencycontrol`这三部分内容,我们将深入理解Hibernate中的HQL查询、Criteria查询以及并发控制策略。...
### HQL连接查询和注解使用总结 ...以上总结了HQL连接查询的不同类型及其语法特点,以及如何在Hibernate中利用注解配置持久化类及其关联关系。这些知识对于理解和使用Hibernate进行高效数据库操作至关重要。
### Hibernate 3.2中文手册知识点汇总 #### 第1章:Hibernate入门 - **1.1 前言** - 介绍了Hibernate的基本概念及其重要性。 - 强调了学习Hibernate对于Java开发人员的重要性。 - **1.2 第一部分—第一个...
- **聚合函数**:说明如何在 HQL 中使用聚合函数进行数据汇总。 - **多态查询**:讨论如何编写可以查询继承结构的 HQL。 - **where 子句**:解释如何在 HQL 中添加筛选条件。 - **表达式**:介绍 HQL 中可用的表达式...
### hibernate4.1中文API知识点汇总 #### 1. 教程 ##### 1.1 第一部分 - 第一个Hibernate应用程序 - **设置**: 安装必要的开发环境,包括Java SDK、IDE(如Eclipse或IntelliJ IDEA)、Hibernate库等。 - **第一节...
8. ** Criteria Expressions 和 Projections**:Criteria 查询可以利用Expressions(如比较、函数等)和Projections(用于结果集的转换)进行更复杂的筛选和数据汇总。 9. **集合映射**:Hibernate 支持一对一、一...
- `GROUP BY`子句配合统计函数,如`COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`,用于数据汇总和分析。 ### 连接查询 - **内连接(INNER JOIN)** 只返回两个表中匹配的记录。 - **左外连接(LEFT OUTER JOIN...
5. **查询语言(HQL)与Criteria查询**:介绍Hibernate查询语言,包括基本查询、聚合函数、子查询、关联查询等。同时,探讨Criteria API,提供一种更面向对象的查询方式。 6. **Cascading与Lazy Loading**:解释...
- **Hibernate**:掌握ORM(对象关系映射)概念,会使用HQL进行数据库操作。 - **Struts**:理解MVC模式,会配置Action和Result,处理表单提交。 以上是Java笔试题和面试题中常见的知识点,熟悉并掌握这些内容将...
- **存储过程与函数**:创建与调用存储过程和函数的方法。 12. **设计模式与软件架构** - **设计模式应用**:深入理解设计模式,并将其应用于实际项目中。 - **架构设计**:基于Java的软件架构设计原则与最佳...
- Hibernate:对象关系映射(ORM),实体管理,HQL 查询语言。 - Struts:MVC 设计模式,Action 类,配置文件详解。 **四、HTML/CSS/JavaScript** 面试可能涵盖前端开发的基础知识: - HTML 结构、语义化标签、表单...
Hibernate作为持久化框架,可能问及ORM映射、事务管理、HQL查询等。 最后,"java面试笔试题大汇总.pdf"可能是一个综合性的题库,涵盖了上述所有主题,并可能添加了JVM内存模型、垃圾收集机制、性能优化、数据库连接...
- **HQL**:Hibernate查询语言,类似于SQL。 - **性能优化、一级缓存、二级缓存、查询缓存**:缓存策略对于提高性能至关重要。 - **事务与并发、悲观锁、乐观锁**:事务管理和并发控制机制。 - **openSessionInView*...