- 浏览: 928295 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 890Hibernate配置属性 属性名用途 hibernate. ... -
Restrictions
2010-05-31 09:29 1298HQL运算符 QBC运算符 含义 ... -
Hibernate 之 oscache实现二级缓存
2009-10-20 13:49 9661.导入oscache包。 2.sessionFactory ... -
正确解决org.hibernate.DuplicateMappingException
2009-10-16 14:53 1972例如异常信息如下: duplicate import ... -
Hibernate对象的三种状态
2009-10-11 21:10 1549Hibernate的对象有3种状态,分别为:瞬时态(Trans ... -
could not initialize proxy - the owning Session was closed
2009-10-11 21:01 827其实这个异常写的非常 ... -
Hibernate连接池配置
2009-10-05 08:18 899Hibernate支持第三方的连接池,官方推荐的连接池是C3P ... -
hibernate.cfg.xml配置总结
2009-05-31 21:52 848Hibernate的描述文件可以是一个propertie ... -
利用c3p0配置数据库连接
2009-05-22 12:34 1284<!-- 配置数据源 --& ... -
hibernate属性表
2009-05-22 12:29 976属性名 用途 hibernate.dialec ... -
关于Hibernate一个配置参数hibernate.hbm2ddl.auto
2009-05-13 09:55 1742<properties> & ... -
hibernate二级缓存攻略
2009-05-13 09:47 880hibernate的session提 ... -
hibernate二级缓存的配置
2009-05-13 09:39 9751、首先要打开二级缓存,在hibernate.cfg.xml中 ... -
HibernateTemplate的常规用法
2009-04-13 10:05 1056HibernateTemplate提供非常多的常用方法来完成基 ... -
JAVA通用Dao接口和hibernate的实现
2009-04-10 15:24 1199基于泛型的通用Dao接口:(主要是在使用hibernate或J ... -
Hibernate中操作问题
2008-11-18 16:53 974在使用Hibernate进行查询操作的时候,有时候会遇到只需要 ... -
多条件进行查询
2008-11-18 16:44 931StringBuffer buf = new StringBu ... -
Hibernate进行批处理的问题
2008-11-18 16:04 867在开发新闻管理系统的时候,对象进行批量处理的时候,如果直接用h ... -
Hibernate与数据库
2008-11-18 15:11 896mssql建表时用的如:user等关键字在使用hibernat ... -
Hibernate主键生成方式 Key Generator
2008-11-13 20:36 1056Hibernate主键生成方式 Key ...
相关推荐
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("name", "John")); List...
### Criteria使用方法详解 #### 一、概述 在软件开发过程中,尤其是涉及到数据库操作的应用程序中,查询语言的灵活性和效率对于项目的成功至关重要。Hibernate作为Java领域中最流行的ORM(Object Relational ...
以下是对Criteria用法的详细说明: 1. **创建Criteria实例**: 要开始使用Criteria,你需要在Hibernate的Session中调用`createCriteria()`方法,传入你想查询的实体类的Class对象。例如,如果你要查询Person实体,...
【Hibernate Criteria 用法详解】 Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件...
在Java持久层框架Hibernate中,Criteria API是一种动态构建SQL查询的方法,它允许开发者在运行时构建查询,提供了更面向对象的查询方式。本篇将详细阐述Hibernate Criteria API的使用。 首先,Criteria API由...
- **使用场景**:`Criteria` 适用于即时查询,而 `DetachedCriteria` 更适合跨层传递查询条件。 - **灵活性**:`DetachedCriteria` 提供了更大的灵活性,可以在不同层之间传递而不会丢失查询状态。 #### 三、`...
- 使用`Session`对象的`createCriteria()`方法创建Criteria实例,例如:`Criteria crt = session.createCriteria(Organization.class);` 2. **添加查询条件**: - `Restrictions`类提供了多种方法来构建条件,如`...
**关联映射Hibernate的Criteria用法详解** 在Java开发中,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。其中,Criteria API是Hibernate提供的一个动态查询工具,它允许开发者以面向...
### Hibernate Criteria 使用方法详解 #### 一、简介 Hibernate 是一款非常流行的 Java 持久层框架,它简化了对象关系映射(ORM)过程中的许多复杂性。在 Hibernate 中,Criteria API 提供了一种类型安全的方式来...
- `Session`对象:在Hibernate中,`Session`是与数据库交互的主要接口,它提供了`createCriteria()`方法来创建一个`Criteria`实例。 - `Criteria`对象:这是构建查询的核心,通过调用其各种方法来指定查询条件、...
以下是一些使用Criteria API的基本用法: 1. 创建Criteria实例: ```java Criteria criteria = session.createCriteria(User.class); ``` 2. 添加查询条件: ```java criteria.add(Restrictions.eq("username...
在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Restrictions.like()` 方法创建了一个条件对象,最后使用 `add()` 方法将条件添加到 Criteria 对象中,并使用 `list()` 方法来获取查询结果。...
本文将对 Hibernate 中 Criteria 的用法进行总结,涵盖 Criteria 和 DetachedCriteria 的差异、Criterion 和 Projection 的使用方法等。 Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供...
通过理解并熟练掌握`Criteria`、`DetachedCriteria`、`Criterion`和`Projection`等核心概念及其使用方法,可以显著提升数据库操作的效率和代码的可维护性。在实际项目中,结合Spring框架的便利性,开发者能够更加...
本文将详细介绍`Criteria`的基本概念、使用方法以及其提供的各种功能特性。 #### Criteria简介 `Criteria`是Hibernate框架提供的一个接口,用于创建面向对象的查询。它允许开发者以程序化的方式构建查询条件,从而...
下面将详细解释Criteria API的核心概念和用法。 Criteria API的主要优势在于它允许程序在运行时构造查询,这意味着可以在不硬编码SQL的情况下,根据业务逻辑的变化灵活地调整查询条件。这对于维护和扩展应用程序...
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria 和 DetachedCriteria 都可以使用Criterion 和 Projection 设置查询条件,可以设置 FetchMode...