`
java110eye
  • 浏览: 64939 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

hibernate Restrictions 用法 查询

 
阅读更多

 

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可以无限加

 

 

 

.

分享到:
评论

相关推荐

    hibernate里面的 两种查询

    在Java的持久化框架Hibernate中,查询是连接应用程序与数据库的关键环节。Hibernate提供了两种主要的查询方式:离线查询(Criteria API...理解并熟练掌握这两种查询方式,将有助于提升Hibernate的使用效率和代码质量。

    hibernate的多态查询

    5. **多态查询的实现**:Hibernate支持使用`DetachedCriteria`或`Criteria` API来进行多态查询,通过`createCriteria()`方法指定父类,并使用`add(Restrictions.in("property", values))`等方法来限制查询条件。...

    Hibernate 参数查询通用方法

    本篇将详细探讨"Hibernate参数查询通用方法"这一主题,以及如何通过Dao层实现高效、灵活的数据查询。 在Hibernate中,参数查询通常涉及到HQL(Hibernate Query Language)或者使用Criteria API。这两种方式都可以...

    HQL是hibernate自己的一套查询

    根据提供的标题、描述以及部分代码内容,我们可以了解到这段材料主要涉及的是Hibernate框架中的HQL(Hibernate Query Language)查询语言的使用。接下来将详细介绍HQL的相关知识点。 ### HQL概述 HQL是Hibernate...

    Hibernate各种查询:联表查询 分页查询 位置参数查询(?) 占位符查询(冒号查询) 统计查询

    `Criteria` API提供了更加面向对象的查询方式,通过`createCriteria()`方法指定主表,然后使用`createAlias()`方法添加关联表。而`HQL`则更像SQL,可以通过`from`关键字指定多个表,并使用`join`进行连接。 接着,...

    hibernate 模糊查询 分页

    本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...

    Hibernate Criteria用法大全.docx

    【Hibernate Criteria 用法详解】 Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件...

    hibernate自定义查询

    Hibernate支持使用`createSQLQuery`方法创建SQL查询,并返回结果集。例如: ```java Session session = sessionFactory.openSession(); SQLQuery sqlQuery = session.createSQLQuery("SELECT * FROM USER WHERE ...

    Hibernate查询解决方案

    本文详细介绍了 Hibernate 提供的各种查询方式,包括 `load`、`get`、`createQuery` 和 `find` 等方法,并重点阐述了 HQL 查询的基本用法和高级技巧。通过本文的学习,读者可以掌握 Hibernate 的基本查询操作,并能...

    hibernate查询详解

    本文将详细介绍Hibernate的五种查询方式,包括HQL查询、Criteria方法、动态查询DetachedCriteria、例子查询、SQL查询以及命名查询,以满足不同场景下的需求。 1. HQL查询: Hibernate Query Language(HQL)是一种...

    Hibernate中的查询:HQL、Criteria、原生SQl

    在Java世界中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑而不是底层数据...在实际开发中,通常会结合使用这三种查询方式,以充分利用Hibernate的灵活性和强大功能。

    Hibernate的Criteria用法总结.doc

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("name", "John")); List...

    hibernate查询方法

    **Hibernate查询方法大全** Hibernate,作为Java领域中最流行的持久化框架之一,提供了多种查询数据的方法。这些方法使得开发者能够高效地从数据库中检索、更新和删除数据,无需编写大量SQL语句。本篇文章将深入...

    Hibernate三大类查询总结

    此外,Hibernate允许我们直接使用SQL表达式,如通过`Restrictions.sql()`方法实现,但需要注意的是,`{alias}`需要替换为查询实体的列别名。 ```java List&lt;Cat&gt; cats = sess.createCriteria(Cat.class) .add...

    \Hibernate_query条件查询

    《Hibernate查询条件查询详解》 Hibernate作为Java领域中广受欢迎的对象关系映射(ORM)框架,极大地简化了数据库操作。其强大的查询能力是其核心功能之一。本篇将深入探讨Hibernate的条件查询,帮助开发者更好地...

    Hibernate_query查询数据表中部分字段.

    以上就是使用Hibernate查询数据表中部分字段的方法。在实际应用中,根据项目需求和性能考虑,可以选择合适的方式进行查询。同时,要注意优化查询,避免全表扫描,减少对数据库的压力。学习和熟练掌握这些技术,将有...

    Hibernate查询方式代码示例

    **Hibernate查询方式详解** 在Java世界中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。...在博客中,我详细讲解了每个查询方法的使用和注意事项,还有更多的实战案例等待你去探索。

    Hibernate在查询条件中创建List集合

    `createCriteria("orders")`表示我们要查询User类中的orders属性,然后使用`add`方法添加限制条件,`Restrictions.in("id", orderIdsList)`表示订单ID在给定的List中。 在处理大数据量时,我们还可以使用分页查询来...

    Restrictions用法.docx

    综上所述,`Restrictions`类提供了丰富的条件构造方法,使得在Hibernate中构建Criteria查询变得简单直观,同时也方便了对复杂查询逻辑的管理。通过熟练掌握这些方法,开发者可以更好地实现数据的筛选、排序和过滤。

    Hibernate QBC高级查询.rar

    本资源“Hibernate QBC高级查询”聚焦于Hibernate Query by Criteria(QBC)的高级用法,旨在帮助开发者深入理解并熟练运用这一强大的查询机制。 Query by Criteria是Hibernate提供的另一种查询方式,与HQL...

Global site tag (gtag.js) - Google Analytics