import hibernate classes
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
DetachedCriteria criteria = DetachedCriteria.forClass(UserPO.class);
// 按照用户名排序 -- 升序
criteria.addOrder(Order.asc("userName"));
if (user != null) {
// 按条件查询
if (user.getUserName() != null && !user.getUserName().trim().equals("")) {
criteria.add(Restrictions.like("userName", user.getUserName().trim(), MatchMode.ANYWHERE));
}
}
getHibernateTemplate().findByCriteria(criteria ); // 返回LIST
Restrictions 的用法:
1、Restrictions
方法 |
说明 |
Restrictions.eq |
equal 等于 == |
Restrictions.allEq |
参数为Map对象,使用key/value进行多个等于的对比,相当于多个Restrictions.eq的效果 |
Restrictions.gt |
great than 大于 > |
Restrictions.ge |
great equal 大于等于 >= |
Restrictions.lt |
less than 小于 < |
Restrictions.le |
less equal 小于等于 <= |
Restrictions.between |
对应SQL的between子句 |
Restrictions.like |
对应SQL的like子句 |
Restrictions.in |
对应SQL的in子句 |
Restrictions.and |
and 关系 |
Restrictions.or |
or 关系 |
Restrictions.isNull |
判断属性是否为null,为空则返回true |
Restrictions.sqlRestriction |
SQL限定的查询 |
2、Order
Order.asc |
根据传入的字段进行升序排序 |
Order.desc |
降序 |
3、MatchMode
MatchMode.EXACT |
字符串精确匹配,相当于: like 'value' |
MatchMode.ANYWHERE |
字符串在中间匹配 like '%value%' |
MatchMode.START |
匹配前面 like 'value%' |
MatchMode.END |
like '%value' |
例子:
// 查询年龄在20-30岁之间的所有学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.between("age",new Integer(20),new Integer(30)).list();
// 查询学生姓名在AAA,BBB,CCC之间的学生对象
String[] names = {"AAA","BBB","CCC"};
List list = session.createCriteria(Student.class)
.add(Restrictions.in("name",names)).list();
// 查询年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.isNull("age")).list();
// 查询年龄等于20或者年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.or(Restrictions.eq("age",new Integer(20)),
Restrictions.isNull("age")).list();
or可以无限加
.
分享到:
相关推荐
在Java的持久化框架Hibernate中,查询是连接应用程序与数据库的关键环节。Hibernate提供了两种主要的查询方式:离线查询(Criteria API...理解并熟练掌握这两种查询方式,将有助于提升Hibernate的使用效率和代码质量。
5. **多态查询的实现**:Hibernate支持使用`DetachedCriteria`或`Criteria` API来进行多态查询,通过`createCriteria()`方法指定父类,并使用`add(Restrictions.in("property", values))`等方法来限制查询条件。...
本篇将详细探讨"Hibernate参数查询通用方法"这一主题,以及如何通过Dao层实现高效、灵活的数据查询。 在Hibernate中,参数查询通常涉及到HQL(Hibernate Query Language)或者使用Criteria API。这两种方式都可以...
根据提供的标题、描述以及部分代码内容,我们可以了解到这段材料主要涉及的是Hibernate框架中的HQL(Hibernate Query Language)查询语言的使用。接下来将详细介绍HQL的相关知识点。 ### HQL概述 HQL是Hibernate...
`Criteria` API提供了更加面向对象的查询方式,通过`createCriteria()`方法指定主表,然后使用`createAlias()`方法添加关联表。而`HQL`则更像SQL,可以通过`from`关键字指定多个表,并使用`join`进行连接。 接着,...
本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...
【Hibernate Criteria 用法详解】 Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件...
Hibernate支持使用`createSQLQuery`方法创建SQL查询,并返回结果集。例如: ```java Session session = sessionFactory.openSession(); SQLQuery sqlQuery = session.createSQLQuery("SELECT * FROM USER WHERE ...
本文详细介绍了 Hibernate 提供的各种查询方式,包括 `load`、`get`、`createQuery` 和 `find` 等方法,并重点阐述了 HQL 查询的基本用法和高级技巧。通过本文的学习,读者可以掌握 Hibernate 的基本查询操作,并能...
本文将详细介绍Hibernate的五种查询方式,包括HQL查询、Criteria方法、动态查询DetachedCriteria、例子查询、SQL查询以及命名查询,以满足不同场景下的需求。 1. HQL查询: Hibernate Query Language(HQL)是一种...
在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据...在实际开发中,通常会结合使用这三种查询方式,以充分利用Hibernate的灵活性和强大功能。
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("name", "John")); List...
**Hibernate查询方法大全** Hibernate,作为Java领域中最流行的持久化框架之一,提供了多种查询数据的方法。这些方法使得开发者能够高效地从数据库中检索、更新和删除数据,无需编写大量SQL语句。本篇文章将深入...
此外,Hibernate允许我们直接使用SQL表达式,如通过`Restrictions.sql()`方法实现,但需要注意的是,`{alias}`需要替换为查询实体的列别名。 ```java List<Cat> cats = sess.createCriteria(Cat.class) .add...
《Hibernate查询条件查询详解》 Hibernate作为Java领域中广受欢迎的对象关系映射(ORM)框架,极大地简化了数据库操作。其强大的查询能力是其核心功能之一。本篇将深入探讨Hibernate的条件查询,帮助开发者更好地...
以上就是使用Hibernate查询数据表中部分字段的方法。在实际应用中,根据项目需求和性能考虑,可以选择合适的方式进行查询。同时,要注意优化查询,避免全表扫描,减少对数据库的压力。学习和熟练掌握这些技术,将有...
**Hibernate查询方式详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。...在博客中,我详细讲解了每个查询方法的使用和注意事项,还有更多的实战案例等待你去探索。
`createCriteria("orders")`表示我们要查询User类中的orders属性,然后使用`add`方法添加限制条件,`Restrictions.in("id", orderIdsList)`表示订单ID在给定的List中。 在处理大数据量时,我们还可以使用分页查询来...
综上所述,`Restrictions`类提供了丰富的条件构造方法,使得在Hibernate中构建Criteria查询变得简单直观,同时也方便了对复杂查询逻辑的管理。通过熟练掌握这些方法,开发者可以更好地实现数据的筛选、排序和过滤。
本资源“Hibernate QBC高级查询”聚焦于Hibernate Query by Criteria(QBC)的高级用法,旨在帮助开发者深入理解并熟练运用这一强大的查询机制。 Query by Criteria是Hibernate提供的另一种查询方式,与HQL...