Hibernate Criteria 的用法
1. 普通的查询
Criteria criteria = session.createCriteria(Track.class);
criteria.add(Restrictions.le(”playTime”,length));
return criteria.list();
2. 其他
Criteria criteria = session.createCriteria(Track.class);
criteria.add(Restrictions.le(”playTime”,length));
criteria.addOrder(Order.asc(”title”).ignoreCase());
return criteria.list();
3. 组合条件查询
Criteria critera = session.createCriteria(Track.class);
criteria.add(Restrictions.le(”playTime”,length));
criteria.add(Restrictions.like(”title”,length));
criteria.addOrder(Order.asc(”title”).ignoreCase());
4. 宽松条件查询(OR)
session.createCriteria(Tarck.class)
.add(Restrictions.disjunction()
.add(Restrictions.le(”playTime”),length))
.add(Restrictions.like(”title”), “%A%”)))
.addOrder(Order.asc(”title”).ignoreCase())
.list();
5.对单一属性做简单投影,返回的List 是String类型的List对象
Session.createCriteria(Track.class)
.add(Resritctions.like(”title”,”sometext”, MatchMOde.ANYWHERE).ignoreCase())
.setProjection(Projections.property(”title”))
.list();
6.对多个属性做投影,返回Object数组类型的List对象
Session.createCriteria(Track.class)
.add(Resritctions.like(”title”,”sometext”, MatchMOde.ANYWHERE).ignoreCase())
.setProjection(Projections.property(”title”))
.setProjection(Projections.property(”playTime”))
.list();
7.带聚合的投影
a.创业一个ProjectionList实例
b.对sourceMedia字段分组
c.返回记录总数
d.返回分组的结果集中playTime的最大值
Session.createCriteria(Track.class)
.setProjection(Projections.projectionList()) //a
.add(Projections.groupProperty(”sourceMedia”)) //b
.add(Projections.rowCount()) //c
.add(Projections.max(”playTime”))); //d
//select count(*), max(track.playTime) from track group by track.sourceMedia
8. 对聚合投影结果排序要通过设置别名来完成
Session.createCriteria(Track.class)
.setProjection(Projections.projectionList())
.add(Projections.groupProperty(”sourceMedia”).as(”media”))
.add(Projections.rowCount())
.add(Projections.max(”playTime”)));
.addOrder(Order.asc(”media”));
9. 在关联中应用条件查询
Criteria criteria = session.createCriteria(Track.class);
Criteria artistCriteria = criteria.createCriteria(”artists”);
artistCritera.add(Restrictions.like(”name”,namePattern));
artisCriteria.addOrder(Order.asc(”name”).ignoreCase());
criteria.list();
10. 示例查询
a.示例查询中,值为null的忽略
b.对字符串值按照区分大小写的逐字比较
c.如果比较时,需要忽略为0的属性,可以调用example.excludeZeroes()
d.如果希望对值为null的属性进行匹配可以调用example.excludeNone()
e.example.excludeProperty()用来明确忽略指定名称的特定属性
f.调整字符串处理,还可以使用ignoreCase()和enableLike()方法
SourceMedia media = new SourceMedia();
media.setName(”example”)
Track track = new Track();
track.setSourceMedia(media); \\media 是一个SourceMedia对象
Example example = Example.create(track);
Criteria criteria = session.createCriteria(Track.class);
criteria.add(example);
criteria.addOrder(Order.asc(”title”));
return critera.list();
分享到:
相关推荐
【Hibernate Criteria 用法详解】 Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件...
### Hibernate Criteria 使用方法详解 #### 一、简介 Hibernate 是一款非常流行的 Java 持久层框架,它简化了对象关系映射(ORM)过程中的许多复杂性。在 Hibernate 中,Criteria API 提供了一种类型安全的方式来...
在Java持久层框架Hibernate中,Criteria API是一种动态构建SQL查询的方法,它允许开发者在运行时构建查询,提供了更面向对象的查询方式。本篇将详细阐述Hibernate Criteria API的使用。 首先,Criteria API由...
这段代码首先通过`getSession()` 方法获取一个`Session` 对象,然后使用`createCriteria()` 方法创建一个针对`Books` 类的`Criteria` 实例。最后,通过`list()` 方法执行查询并获取所有书籍的数据。 #### 四、条件...
Hibernate Criteria 是一种在Java应用程序中使用Hibernate ORM框架执行SQL查询的方式。它提供了一种面向对象的方式来构建查询,使得代码更加可读和易于维护。Criteria API 提供了多种方法来构建复杂的查询,包括添加...
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("name", "John")); List...
本文将围绕给定的代码片段,深入探讨Hibernate Criteria API中排序功能的使用方法与注意事项。 #### 二、基础知识回顾 在开始之前,我们先简单回顾一下Hibernate Criteria API的基础知识: - **Criteria API**:...
**Hibernate Criteria 完全使用详解** Hibernate Criteria API 是 Hibernate 框架中一个强大的查询工具,它提供了一种面向对象的方式来构建SQL查询,使得开发者无需直接编写SQL语句,即可进行复杂的数据库操作。...
Hibernate 中 Criteria 的完整用法 Hibernate 的 Criteria 是一种强大且灵活的查询机制,允许开发者根据需求灵活地组装查询条件。Criteria 的设计是基于 CriteriaSpecification 父接口,提供了 Criteria 和 ...
在Hibernate中,使用`Criteria`进行查询时,可以通过添加排序条件来对结果集进行排序。`Criteria`提供了一个非常灵活的方式来实现这一点。 **示例代码**: ```java Criteria criteria = session.createCriteria...
Hibernate 中 Criteria 的用法 Hibernate 中 Criteria 的用法是 Hibernate 框架中的一种查询机制,它提供了灵活的查询方式,可以根据不同的条件进行查询。Criteria 查询机制主要包括 QBE(Query By Example)、QBC...
本篇内容将聚焦于Hibernate中的Criteria查询,这是一种动态构建SQL查询的方法,无需直接编写SQL语句,非常适合在程序运行时根据条件构建查询。 在Hibernate中,Criteria API提供了一种类型安全的方式来执行查询,它...
以下是对Criteria用法的详细说明: 1. **创建Criteria实例**: 要开始使用Criteria,你需要在Hibernate的Session中调用`createCriteria()`方法,传入你想查询的实体类的Class对象。例如,如果你要查询Person实体,...
本文将对 Hibernate 中 Criteria 的用法进行总结,涵盖 Criteria 和 DetachedCriteria 的差异、Criterion 和 Projection 的使用方法等。 Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供...
**关联映射Hibernate的Criteria用法详解** 在Java开发中,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。其中,Criteria API是Hibernate提供的一个动态查询工具,它允许开发者以面向...
在Java的持久化框架Hibernate中,Criteria API是一种用于构建动态查询的强大工具,它允许开发者以编程方式构建查询,而不是直接写SQL语句。下面将详细解释Criteria API的使用及其相关概念。 1. Query By Example ...
这种API的使用方法更加面向对象,减少了硬编码SQL的风险,同时提高了代码的可读性和可维护性。下面我们将通过几个关键概念来深入理解Criteria查询。 1. **Session**: Hibernate的核心接口,用于与数据库进行交互。...
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria 和 DetachedCriteria 都可以使用Criterion 和 Projection 设置查询条件,可以设置 FetchMode...