NHibernate HQL 函数参考与示例
需积分: 10 139 浏览量
更新于2024-09-09
收藏 3KB TXT 举报
"NHibernate HQL 可用函数大全"
在NHibernate中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和属性的方式编写查询,而不是直接处理数据库表和列。本资源主要介绍了在NHibernate HQL中可用的一些常见函数和查询模式。
1. **分页查询**: `from Category c where ...` 这种基本的HQL语句用于从Category类中选择数据。可以添加`where`子句来设置条件,例如`c.name > 'c5'`。
2. **排序**: `order by`关键字用于对查询结果进行升序或降序排序,如`order by c.name desc`表示按照name字段降序排序,而`asc`表示升序。
3. **分组**: `group by`语句用于按指定字段对数据进行分组,例如`select distinct c from Category c`用于去除重复的Category对象。
4. **范围查询**: `where c.id > :min and c.id < :max`允许我们指定一个范围来筛选记录。在实际执行时,使用`setInteger()`方法设置参数值。
5. **限制返回结果数量**: `setMaxResults()`设置每页显示的最大记录数,`setFirstResult()`则指定从哪一条开始显示,相当于SQL中的OFFSET。
6. **比较操作符**: 包括`>`, `<`, `>=`, `<=`, `=`, `!=`等,例如`c.id > ? and c.id < ?`,这里的`?`是预编译参数,通过`setParameter()`设置实际值。
7. **聚合函数**:
- `count(*)`: 计算查询结果的行数。
- `max()`: 找到某个字段的最大值。
- `min()`: 找到某个字段的最小值。
- `avg()`: 计算某个数值字段的平均值。
- `sum()`: 计算某个数值字段的总和。
8. **范围查询**:
- `between`: `where m.id between 3 and 5`筛选id在3和5之间的记录。
- `in`: `where m.id in (3, 4, 5)`筛选id属于特定集合的记录。
9. **空值检查**:
- `is null`: `where m.cont is null`检查cont字段是否为空。
- `is not null`: `where m.cont is not null`检查cont字段是否非空。
10. **字符串操作函数**:
- `lower()`: 将字符串转换为小写,如`lower(t.title)`。
- `upper()`: 将字符串转换为大写,如`upper(t.title)`。
- `trim()`: 去除字符串两端的空白字符,如`trim(t.title)`。
- `concat()`: 字符串连接,如`concat(t.title, '***')`。
- `length()`: 获取字符串长度,如`length(t.title)`。
11. **模糊匹配**:
- `like`: `where t.title like '%5%'`用于执行模糊匹配,`%`代表任意字符的任意次数,`_`代表单个字符。
12. **空集合检查**:
- `isEmpty()`: `where t.msgs isEmpty`检查msgs集合是否为空。
以上列举了NHibernate HQL中的一部分常用函数和查询方式,实际上还有更多的函数和表达式可供使用,如日期时间操作、数学运算等,它们提供了强大的查询能力,使得开发者可以更加灵活地与数据库交互。在实际开发中,了解并熟练运用这些函数能够显著提高代码的可读性和维护性。
2011-11-15 上传
点击了解资源详情
2010-12-05 上传
2007-04-05 上传
2007-10-15 上传
2008-10-21 上传
2010-12-18 上传
vinia
- 粉丝: 6
- 资源: 2
最新资源
- N10SG模块opencpu固件.zip
- 回收站变变变.zip易语言项目例子源码下载
- ARLAS-wui-builder:ARLAS-Wui的制造商
- ys-park-2
- electronic-ftrouter:用于运行电子的模板存储库,其中有运行路径的routex
- KottuRoti:Ant214项目游戏文件
- 前端开发css+html灯笼动画插件源代码
- pyg_lib-0.2.0+pt20-cp38-cp38-macosx_10_15_x86_64whl.zip
- tele_sign:Node.js库通过http发送消息
- CMPE:CMPE 安卓
- check-api-playground
- 判决matlab代码-self_other_moral:自我和他人道德判断的神经/行为基础项目
- 094. 2019年中国洗碗机市场年度总结报告.rar
- cornflux:用于React应用程序的调度库,可促进数据封装
- AndroidVision:在您的手机上学习图像处理
- forten:Monorepo for Overmind模块