- 浏览: 2832653 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
Criteria 本身只是一个查询容器,具体的查询条件需要通过 Criteria.add
方法添加到 Criteria 实例中。
如前例所示, Expression 对象具体描述了查询条件。针对 SQL 语法,
Expression 提供了对应的查询限定机制,包括:
方法 |
描述 |
Expression.eq
|
对应 SQL “ field = value ”表达式。 如 Expression.eq( "name" , "Erica" ) |
Expression.allEq
|
参数为一个 Map 对象,其中包含了多个属性-值对 应关系。相当于多个 Expression.eq 关系的叠加。
|
Expression.gt
|
对应 SQL 中的 “field > value ” 表达式
|
Expression.ge
|
对应 SQL 中的 “field >= value” 表达式
|
Expression.lt
|
对应 SQL 中的 “field < value” 表达式
|
Expression.le
|
对应 SQL 中的 “field <= value” 表达式
|
Expression.between
|
对应 SQL 中的 “between” 表达式 如下面的表达式表示年龄( age )位于 13 到 50 区 间内。 Expression.between( "age" , new Integer(13), new Integer(50));
|
Expression.like
|
对应 SQL 中的 “field like value” 表达式
|
Expression.in
|
对应 SQL 中的 ”field in …” 表达式
|
Expression.eqProperty
|
用于比较两个属性之间的值,对应 SQL 中的“ field = field ”。 如: Expression.eqProperty( "TUser.groupID" , "TGroup.id" );
|
Expression.gtProperty
|
用于比较两个属性之间的值,对应 SQL 中的“ field > field ”
|
Expression.geProperty
|
用于比较两个属性之间的值,对应 SQL 中的“ field >= field ”
|
Expression.ltProperty
|
用于比较两个属性之间的值,对应 SQL 中的“ field < field ”
|
Expression.leProperty
|
用于比较两个属性之间的值,对应 SQL 中的“ field <= field ”
|
Expression.and
|
and 关系组合。 如: Expression.and( Expression.eq( "name" , "Erica" ), Expression.eq( "sex" , new Integer(1) ) );
|
Expression.or
|
or 关系组合。 如: Expression.or( Expression.eq( "name" , "Erica" ), Expression.eq( "name" , "Emma" ) );
|
Expression.sql
|
作为补充,本方法提供了原生 SQL 语法的支持。我 们可以通过这个方法直接通过 SQL 语句限定查询 条件。 下面的代码返回所有名称以“ Erica ”起始的记录: Expression.sql( “ lower({alias}.name) like lower(?) ” , "Erica%" , Hibernate.STRING ); 其中的“ {alias} ”将由 Hibernate 在运行期使 用当前关联的 POJO 别名替换。
|
注意 Expression 各方法中的属性名参数(如 Express.eq 中的第一个参数),这里所谓属性名是 POJO 中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。
Criteria 高级特性
限定返回的记录范围
通过 criteria. setFirstResult/setMaxResults 方法可以限制一次查询返回
的记录范围 :
Criteria criteria = session.createCriteria(TUser. class );
// 限定查询返回检索结果中,从第一百条结果开始的 20 条记录
criteria.setFirstResult(100);
criteria.setMaxResults(20);
对查询结果进行排序
// 查询所有 groupId=2 的记录
// 并分别按照姓名 ( 顺序 ) 和 groupId (逆序)排序
Criteria criteria = session.createCriteria(TUser. class );
criteria.add(Expression.eq( "groupId" , new Integer(2)));
criteria.addOrder(Order.asc( "name" ));
criteria.addOrder(Order.desc( "groupId" ));
Criteria 作为一种对象化的查询封装模式,不过由于 Hibernate 在实现过程中将精力
更加集中在 HQL 查询语言上,因此 Criteria 的功能实现还没做到尽善尽美(这点上, OJB
的 Criteria 实现倒是值得借鉴),因此,在实际开发中,建议还是采用 Hibernate 官
方推荐的查询封装模式: HQL 。
发表评论
-
spring mvc @controller unit test
2013-11-20 14:14 38521. spring mvc controller imple ... -
Tomcat 生产服务器性能优化
2013-07-23 06:45 987试想以下这个情景:你已经开发好了一个程序,这个程序的排版很不 ... -
Loading Multiple Spring Application Contexts with their own ClassLoader
2013-07-11 20:45 1043package de.incompleteco.spring ... -
ActiveMQ JMS的测试
2011-04-06 18:15 3892有二种方式可以测试。 1. 透过testng, 在测试类中完 ... -
Maven系列2--pom.xml 配置详解
2011-01-06 18:00 3150<project xmlns="http ... -
fisheye2.3.6 安装笔记
2010-09-16 20:25 2209一. 准备工作 1. 下载fisheye ... -
服务器端编程的十大性能问题
2010-09-15 12:01 1218今年5 月底,瑞士计算 ... -
JMX in spring 配置
2010-09-07 12:00 3023JConsole中的连接:简单的localhost:1099 ... -
Ehcache 2.0:后写式缓存和JTA支持
2010-05-22 11:13 1822开源缓存框架Ehcache 最 ... -
Twitter系统运维经验
2010-04-12 22:24 1519最近看到的另外一个 ... -
采用OSGi框架开发项目的十个问题
2010-03-21 18:08 1435近期,InfoQ针对Java模块 ... -
IBM和Eclipse加大对OSGi的支持
2010-03-21 18:05 1236为Java提供模块性的OSGi,正在受到IBM和Eclipse ... -
Castor功能与应用参考
2010-03-12 12:48 35831. 项目简介Castor是一个开源的Java项目 ... -
hibernate之 DetachedCriteria实现多表查询
2009-07-25 17:13 13063DetachedCriteria detachedCriter ... -
spring AOP 理论知识点总结
2009-07-24 17:47 21431.1 AOP 的概念 ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2009-07-02 16:14 4088在项目中总会遇到一些 ... -
maven笔记
2009-06-22 22:14 1498mvn package : 项目打包 mvn help:ef ... -
利用maven构建多模块项目
2009-06-17 14:28 53361. 先单独构建各模块为一个独立的项目。 jar项目: m ... -
Maven基础
2009-06-17 12:58 1831下载Maven安装文件。 定义环境变量M2_HOME到pat ... -
安装M2eclipse步骤
2009-06-15 14:45 37841.下载下列所需文件 eclipse3.4.2 ...
相关推荐
Criteria 查询表达式 ................................................................ 33 Criteria 高级特性 .................................................................... 35 限定返回的记录范围......
一个web开发工程师必备的查询手册,内容包括css2中文手册、css3中文手册、cssHack参考表、html4参考手册、html5参考手册、jquery1.4参考文档、jqueryAPI参考文档中文版、javascript使用手册、PHP5.3 参考手册、正则...
1、IF函数 函数名称:IF 主要功能:根据对指定条件的逻辑判断的真假结果,返回相对应的内容。 使用格式:=IF(Logical,Value_if_true,Value_if_...Criteria表示指定的条件表达式。 应用举例:在C17单元格中输入公式:
46 Criteria 查询 47-49 项目实战 影院信息查询系统 50 pl/sql 51 Oracle数据库对象 52 提高数据库性能 53 hibernate总结 54 使用Spring容器管理JavaBean 55 Spring 数据访问支持 56-59 项目实战:JBOA办公自动化...
CEC2005是单目标测试集中比较常见的使用测试集,该资源经过测试,完全满足函数的表达式,各项数据文件都提供完整。CEC2005的文章链接如下:...
此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序: mysql> exit Bye9! 1:使用SHOW语句找出在服务器上当前存在什么...
此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序: mysql> exit Bye9! 1:使用SHOW语句找出在服务器上当前存在什么...
几个特殊的函数(待补充) ...冒号后面是表达式,表达式计算结果就是本函数的返回值 冒号后面是表达式,表达式计算结果就是本函数的返回值 比如,要打印一个list,里面依次是某个数字的1次方,二次
9.3.4. 条件查询(Criteria queries) 9.3.5. 使用原生SQL的查询 9.4. 修改持久化对象 9.4.1. 使用同一个ISession持久化对象 9.4.2. 修改脱管(Detached)对象 9.4.3. 重新附脱管(Detached)对像 9.5. 删除持久化对象 9.6...
16. 条件查询(Criteria Queries) 16.1. 创建一个Criteria 实例 16.2. 限制结果集内容 16.3. 结果集排序 16.4. 关联 16.5. 动态关联抓取 16.6. 查询示例 16.7. 投影(Projections)、聚合(aggregation)和分组...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
9.3.4. 条件查询(Criteria queries) 9.3.5. 使用原生SQL的查询 9.4. 修改持久化对象 9.4.1. 使用同一个ISession持久化对象 9.4.2. 修改脱管(Detached)对象 9.4.3. 重新附脱管(Detached)对像 9.5. 删除持久化对象 9.6...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. ...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. ...
11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session...
15. 条件查询(Criteria Queries) 15.1. 创建一个Criteria 实例 15.2. 限制结果集内容 15.3. 结果集排序 15.4. 关联 15.5. 动态关联抓取 15.6. 查询示例 15.7. 投影(Projections)、聚合(aggregation)和分组...