Criteria 查询表达式
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.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"));
分享到:
相关推荐
在Hibernate框架中,Criteria查询是除HQL之外的另一种常用查询方式。 #### 二、Criteria 接口 `org.hibernate.Criteria` 接口代表了针对某个特定持久化类的查询。在Hibernate中,可以通过`Session` 对象的 `...
本篇将详细讲解如何在Hibernate中利用Criteria查询来实现类似SQL的查询操作,并探讨其在实际开发中的应用。 Criteria查询是Hibernate提供的一种灵活的查询方式,它可以让我们根据业务需求动态地构建查询条件。这种...
Hibernate Criteria 是一种在Java应用程序中使用Hibernate ORM框架执行SQL查询的方式。它提供了一种面向对象的方式来构建查询,使得代码更加可读和易于维护。Criteria API 提供了多种方法来构建复杂的查询,包括添加...
本资料主要关注的是Hibernate中的Criteria查询,这是一种灵活且强大的查询机制,允许程序员以编程方式构建SQL查询。 Criteria查询是Hibernate提供的API,与传统的HQL(Hibernate Query Language)查询相比,它更...
Hibernate QBC(Query By Criteria)查询是Criteria查询的另一种表达方式,其本质与Criteria查询相同,都是通过构建对象化的查询条件执行SQL。在QBC中,`Expression`类的角色被`Restrictions`类取代,但工作方式类似...
总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...
这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友
- **Criteria API**:是Hibernate提供的一种灵活且强大的查询方式,允许开发者通过程序化的方式来构建查询条件。 - **Order**:用于表示排序规则的对象,包含升序(asc)和降序(desc)两种类型。 - **Criteria....
在Java持久层框架Hibernate中,Criteria API是一种动态构建SQL查询的方法,它允许开发者在运行时构建查询,提供了更面向对象的查询方式。本篇将详细阐述Hibernate Criteria API的使用。 首先,Criteria API由...
### Hibernate Criteria 分组、排序与关联查询详解 #### 标题与描述理解 - **标题**:“hibernate criteria 分组 排序 关联”这一标题明确了本文将围绕Hibernate Criteria API进行分组、排序以及关联查询的具体...
本篇内容将聚焦于Hibernate中的Criteria查询,这是一种动态构建SQL查询的方法,无需直接编写SQL语句,非常适合在程序运行时根据条件构建查询。 在Hibernate中,Criteria API提供了一种类型安全的方式来执行查询,它...
在深入探讨Hibernate与Criteria结合进行模糊查询之前,我们先来了解一下Hibernate和Criteria的基本概念,以及为何选择使用它们进行模糊查询。 ### Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)...
- `Session.createCriteria(Class entityClass)`:这是创建Criteria查询的起点,需要指定要查询的实体类。 - `Criteria`:表示一个查询实例,可以添加各种查询条件、排序规则和结果限制。 - `DetachedCriteria`:...
1. **Criteria**:`org.hibernate.Criteria` 接口是 Criteria 查询的核心,它提供了各种方法来设置查询条件。 2. **Criterion**:`org.hibernate.criterion.Criterion` 接口定义了一个查询标准,用于表示查询条件。 ...
【Hibernate的Criteria查询方法】 在软件开发中,尤其是在Java领域,ORM(对象关系映射)框架如Hibernate大大简化了数据库操作。Hibernate Criteria查询是其中一种强大的API,它提供了一种面向对象的方式来执行...
### Hibernate-Criteria 模糊查询详解 在Java的持久化技术中,Hibernate作为ORM(对象关系映射)框架的一种,提供了强大的数据访问能力。而其中的`Criteria`接口更是为复杂的查询需求提供了一种灵活且功能强大的...
Hibernate 的 Criteria 是一种强大且灵活的查询机制,允许开发者根据需求灵活地组装查询条件。Criteria 的设计是基于 CriteriaSpecification 父接口,提供了 Criteria 和 DetachedCriteria 两个实现。 Criteria 和 ...
Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件,无需直接编写SQL,使得代码更加...
Hibernate 的 Criteria 是一个完全面向对象、可扩展的条件查询 API,通过它完全不需要考虑数据库底层如何实现、SQL 语句如何实现。Criteria 提供了灵活的查询条件组装方式,能够满足开发中复杂的查询需求。 一、...