- 浏览: 918402 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (445)
- 备忘 (0)
- java基础 (28)
- jsp (15)
- css (4)
- javascript (30)
- struts (7)
- servlet (2)
- struts2 (7)
- jdbc (16)
- hibernate (22)
- ibatis (0)
- jpa (1)
- spring (17)
- spring定时任务 (8)
- 整合开发 (12)
- JavaArticle (0)
- php (6)
- velocity (2)
- mysql (19)
- sqlserver (52)
- oracle (23)
- lucene (49)
- ajax (13)
- dwr (5)
- JFreeChart (1)
- service (14)
- tools (18)
- c#基础 (20)
- 程序安全 (0)
- 学习网站 (1)
- 社会需求 (2)
- flash (1)
- 流媒体 (1)
- java_code (1)
- htmlparser (1)
- 速动画教程 (5)
- 设计模式 (1)
- xml操作 (2)
- uml操作 (4)
- 测试 (1)
- linux (8)
- 版本控制 (4)
- 服务器 (12)
- 安全 (6)
- 美工 (2)
最新评论
-
Zhang_amao:
我想问一下, 你用的lucene版本和highligher的版 ...
使用Lucene的Highlighter实现文件摘要的自动提取 -
wangmengfanwangzhi:
博主,你的QQ是什么啊?有关于lucene的问题想要请教啊~~ ...
Lucene下载及测试 -
cutesunshineriver:
讲得很好,理解起来很顺,对个人学习的帮助性很大,谢谢博主。
velocity入门一 -
libin2722:
我这里有一个任务调度,在晚上3点时候会自动将数据库中某表的数据 ...
Lucene-2.2.0 源代码阅读学习(16) -
greatwqs:
java -cp $JVM_ARGS $classpath ...
java的cp命令
Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如:
Java代码
Criteria criteria = session.createCriteria(User.class);
criteria.add(Expression.eq("name","Erica"));
criteria.add(Expression.eq("sex",new Integer(1)));
Criteria 查询表达式
Criteria 本身只是一个查询容器,具体的查询条件需要通过Criteria.add方法添加到Criteria实例中。 如前例所示,Expression 对象具体描述了查询条件。针对SQL 语法,Expression提供了对应的查询限定机制,包括:
Java代码
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区间内。
Java代码
Expression.between("age",new Integer(13),new Integer(50));
表达式
Java代码
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”起始的记录:
Java代码
Expression.sql( “lower({alias}.name) like lower(?)”, "Erica%", Hibernate.STRING );
Expression.sql( “lower({alias}.name) like lower(?)”, "Erica%", Hibernate.STRING );
其中的“{alias}”将由Hibernate在运行期使用当前关联的POJO别名替换。 注意Expression 各方法中的属性名参数(如Express.eq中的第一个参数),这里 所谓属性名是POJO中对应实际库表字段的属性名(大小写敏感),而非库表中的实际字段名称。
Criteria 高级特性
限定返回的记录范围
通过criteria. setFirstResult/setMaxResults 方法可以限制一次查询返回的记录范围:
Java代码
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 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"));
更详细的的内容
http://docs.huihoo.com/hibernate/reference-v3_zh-cn/querycriteria.html
评论
发表评论
-
hibernate.Properties
2012-07-28 16:12 875Hibernate配置属性 属性名用途 hibernate. ... -
Restrictions
2010-05-31 09:29 1274HQL运算符 QBC运算符 含义 ... -
Hibernate 之 oscache实现二级缓存
2009-10-20 13:49 9461.导入oscache包。 2.sessionFactory ... -
正确解决org.hibernate.DuplicateMappingException
2009-10-16 14:53 1954例如异常信息如下: duplicate import ... -
Hibernate对象的三种状态
2009-10-11 21:10 1527Hibernate的对象有3种状态,分别为:瞬时态(Trans ... -
could not initialize proxy - the owning Session was closed
2009-10-11 21:01 803其实这个异常写的非常 ... -
Hibernate连接池配置
2009-10-05 08:18 882Hibernate支持第三方的连接池,官方推荐的连接池是C3P ... -
hibernate.cfg.xml配置总结
2009-05-31 21:52 825Hibernate的描述文件可以是一个propertie ... -
利用c3p0配置数据库连接
2009-05-22 12:34 1269<!-- 配置数据源 --& ... -
hibernate属性表
2009-05-22 12:29 948属性名 用途 hibernate.dialec ... -
关于Hibernate一个配置参数hibernate.hbm2ddl.auto
2009-05-13 09:55 1726<properties> & ... -
hibernate二级缓存攻略
2009-05-13 09:47 862hibernate的session提 ... -
hibernate二级缓存的配置
2009-05-13 09:39 9441、首先要打开二级缓存,在hibernate.cfg.xml中 ... -
HibernateTemplate的常规用法
2009-04-13 10:05 1035HibernateTemplate提供非常多的常用方法来完成基 ... -
JAVA通用Dao接口和hibernate的实现
2009-04-10 15:24 1178基于泛型的通用Dao接口:(主要是在使用hibernate或J ... -
Hibernate中操作问题
2008-11-18 16:53 947在使用Hibernate进行查询操作的时候,有时候会遇到只需要 ... -
多条件进行查询
2008-11-18 16:44 919StringBuffer buf = new StringBu ... -
Hibernate进行批处理的问题
2008-11-18 16:04 851在开发新闻管理系统的时候,对象进行批量处理的时候,如果直接用h ... -
Hibernate与数据库
2008-11-18 15:11 877mssql建表时用的如:user等关键字在使用hibernat ... -
Hibernate主键生成方式 Key Generator
2008-11-13 20:36 1030Hibernate主键生成方式 Key ...
相关推荐
Hibernate的Criteria用法总结Hibernate的Criteria用法总结
DetachedCriteria Criteria 使用方法 非常详细外加练习
Hibernate中Criteria的完整用法 Criteria 是一个完全面向对象,可扩展的条件查询API,通过它完全不需要考虑数据库底层如何实现、SQL语句如何...
Hibernate的Criteria用法
介绍了hibernate中 Criteria接口在实际开发过程中的常见使用方法及技巧
hibernate 利用QBC查询方式,省去hql编写的繁琐
在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Restrictions.like()` 方法创建了一个条件对象,最后使用 `add()` 方法将条件添加到 Criteria 对象中,并使用 `list()` 方法来获取查询结果。...
Hibernate 提供了操纵对象和相应的 RDBMS 表中可用...Hibernate Session 接口提供了 createCriteria() 方法,可用于创建一个 Criteria 对象,使当您的应用程序执行一个标准查询时返回一个持久化对象的类的实例。
Hibernate中Criteria的完整用法
hibernate criteria的使用方法
有次不懂这个是什么意思,看了这个资料后,终生难忘!
Hibernate中Criteria的完整用法
Hibernate中Criteria的完整用法
通过该源代码可以详细的了解hibernate的criteria的用法,有助于快速的帮助初学者建立hibernate中面向对象的查询,
整体总结Hibernate中的Criteria的用法!
Hibernate中Criteria的用法详解