Hibernate Criteria


HQL运算符


QBC运算符


含义


=


Restrictions.eq()


等于equal


<> 


Restrictions.ne()


不等于not equal



Restrictions.gt()


大于greater than


>=


Restrictions.ge()


大于等于greater than or equal



Restrictions.lt()


小于less than


<=


Restrictions.le()


小于等于less than or equal


is null


Restrictions.isnull()


等于空值


is not null


Restrictions.isNotNull()


非空值


like


Restrictions.like()


字符串模式匹配


and


Restrictions.and()


逻辑与


and


Restrictions.conjunction()


逻辑与


or


Restrictions.or()


逻辑或


or


Restrictions.disjunction()


逻辑或


not


Restrictions.not()


逻辑非


in(列表)


Restrictions.in()


等于列表中的某一个值


not in(列表)


Restrictions.not(Restrictions.in())


不等于列表中任意一个值


between x and y


Restrictions.between()


闭区间xy中的任意值


not between x and y


Restrictions.not(Restrictions..between())


小于值X或者大于值y

1.常用的查询限制方法

在例程9-1中,Restrictions.eq()方法表示equal,即等于的情况。Restrictions类提供了查询限制机制。它提供了许多方法,以实现查询限制。这些方法及其他一些criteria常用查询限制方法列于表9-1中。

表9-1 Criteria Query常用的查询限制方法

方    法

说    明

Restrictions.eq()

equal,=

Restrictions.allEq()

参数为Map对象,使用key/value进行多个等于的对比,相当于多个Restrictions.eq()的效果

Restrictions.gt()

greater-than, >

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()

判断属性是否为空,为空返回true,否则返回false

Restrictions.isNotNull()

与Restrictions.isNull()相反

Order.asc()

根据传入的字段进行升序排序

Order.desc()

根据传入的字段进行降序排序

MatchMode.EXACT

字符串精确匹配,相当于“like ‘value‘”

MatchMode.ANYWHERE

字符串在中间位置,相当于“like ‘%value%‘”

MatchMode.START

字符串在最前面的位置,相当于“like ‘value%‘”

MatchMode.END

字符串在最后面的位置,相当于“like ‘%value‘”

例1:查询学生名字以t开头的所有Student对象。

Criteria cr = session.createCriteria(Student.class);

cr.add(Restrictions.like(“name”, “t%”))

List list = cr.list();

Student stu = (Student)list.get(0);

或者使用另一种方式:

Criteria cr = session.createCriteria(Student.class);

cr.add(Restrictions.like(“name”, “t”, MatchMode.START))

List list = cr.list();

Student stu = (Student)list.get(0);

例2:查询学生姓名在Bill, Jack和Tom之间的所有Student对象。

String[] names = {“Bill”, “Jack”, “Tom”}

Criteria cr = session.createCriteria(Student.class);

cr.add(Restrictions.in(“name”, names))

List list = cr.list();

Student stu = (Student)list.get(0);

例3:查询学生的年龄age等于22或age为空(null)的所有Student对象。

Criteria cr = session.createCriteria(Student.class);

cr.add(Restrictions.eq(“age”, new Integer(22));

cr.add(Restrictions.isNull(“age”));

List list = cr.list();

Student stu = (Student)list.get(0);

例4:查询学生姓名以字母F开头的所有Student对象,并按姓名升序排序。

Criteria cr = session.createCriteria(Student.class);

cr.add(Restrictions.like(“name”, “F%”);

cr.addOrder(Order.asc(“name”));

List list = cr.list();

Student stu = (Student)list.get(0);

调用Order.asc的方法应是Criteria的addOrder()方法。

Hibernate Criteria,布布扣,bubuko.com

时间: 2024-12-29 21:36:39

Hibernate Criteria的相关文章

atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria

atitit. 统计功能框架的最佳实践(1)---- on hibernate criteria 1. 关键字 1 2. 统计功能框架普通有有些条件选项...一个日期选项..一个日期类型(日,周,月份,年等) 1 3. 元数据的位置,不需要绑定class 1 4. 设置聚合字段... @reduce(" sum(timLen) "),@reduce(" Avg(timLen) ") 2 5. 设置groupby  字段  @GroupBy 2 6. 设置groupb

hibernate Criteria 使用

: QBE (Query By Example)    Criteria cri = session.createCriteria(Student.class);    cri.add(Example.create(s)); //s是一个Student对象    list cri.list();       实质:创建一个模版,比如我有一个表serial有一个 giftortoy字段,我设置serial.setgifttoy("2"),          则这个表中的所有的giftor

[Hibernate] - Criteria Select

使用Hibernate的Criteria做查询. 参考文档: http://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/querycriteria.html Java Beans: package com.my.bean; import java.util.Date; import java.util.Set; import javax.persistence.CascadeType; import javax.persistenc

【hibernate criteria】hibernate中criteria的完整用法 转

转自:http://www.360doc.com/content/090313/10/26262_2794855.html 1.Criteria Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供了 Criteria和DetachedCriteria . 2.DetachedCriteria Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方

hibernate:criteria(转)

当查询数据时,人们往往需要设置查询条件.在SQL或HQL语句中,查询条件常常放在where子句中.此外,Hibernate还支持Criteria查询(Criteria Query),这种查询方式把查询条件封装为一个Criteria对象.在实际应用中,使用Session的createCriteria()方法构建一个org.hibernate.Criteria实例,然后把具体的查询条件通过Criteria的add()方法加入到Criteria实例中.这样,程序员可以不使用SQL甚至HQL的情况下进行

Hibernate Criteria条件Restrictions.or查询 循环多个or条件

Hibernate 条件or查询 循环多个or条件 今天公司让我做一个列表查询页面,因为还是对于hibernate的不熟悉刚出来经验不足,代码敲得少,所有导致了种种困难…页面左边有个多级菜单栏,因为种种需求需要我用到SQL查询条件里面的or(或者),但因为用的是hibernate所以我苦苦在网上搜寻,得到了如下代码: 1 Criteria criteria = this.createCriteria(); 2 criteria.add(Restrictions.or(Restrictions.e

hibernate criteria中Restrictions的用法

转载:http://ligaosong.iteye.com/blog/1469056 1.方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge >= Restrictions.lt < Restrictions.le <= Restrictions.between BETWEEN Restrictions.like LIKE Restrict

Hibernate Criteria用法大全

标准查询 Hibernate 提供了操纵对象和相应的 RDBMS 表中可用的数据的替代方法.一种方法是标准的 API,它允许你建立一个标准的可编程查询对象来应用过滤规则和逻辑条件. Hibernate Session 接口提供了 createCriteria() 方法,可用于创建一个 Criteria 对象,使当您的应用程序执行一个标准查询时返回一个持久化对象的类的实例. 以下是一个最简单的标准查询的例子,它只是简单地返回对应于员工类的每个对象: Criteria cr = session.cr

[转]hibernate criteria中Restrictions的用法

方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge >= Restrictions.lt < Restrictions.le <= Restrictions.between BETWEEN Restrictions.like LIKE Restrictions.in in Restrictions.and and Restrictions.