Hibernate中使用Criteria查询实例

开发 后端
Criteria查询是hibernate支持的一种java编写习惯的查询api。使用session建立net.sf.hibernate.Criteria,您可以在不用sql甚至hql的情况下进行查询。

hibernate支持一种java编写习惯的查询api,使用session建立net.sf.hibernate.Criteria,您可以在不用sql甚至hql的情况下进行查询。

如果我们要查询User的所有信息我们可以如下使用Criteria查询:

  1. Criteria crit = session.createCriteria(User.class);  
  2.         List users = crit.list();  
  3.         for (ListIterator iterator = users.listIterator(); iterator.hasNext(); ) {  
  4.             User user = (User) iterator.next();  
  5.             System.out.println("name: " + user.getName());  
  6.             System.out.println("age: " + user.getAge());             
  7.         }  

我们要为查询限定条件,可以通过net.sf.hibernate.expression.Expression设置Expression有很多的条件查询方法下面举一些例子:

  1. Criteria crit = session.createCriteria(User.class);  
  2.         crit.add(Expression.ge("age", new Integer(25)));  
  3.         List users = crit.list(); 

ge()表示大于等于,即age大于等于25的user。

  1. crit.add(Expression.gt("age", new Integer(20)));  
  2. crit.add(Expression.between("weight", new Integer(60),new Integer(80)));  
  3. List users = crit.list(); 

Criteria查询结果中的between表示weight在60和80之间。

  1. crit.add(Expression.or(  
  2.                    Expression.eq("age", new Integer(20)),  
  3.                    Expression.isNull("age")  
  4.                ));  
  5. List users = crit.list();  

eq表示age为20的user。

  1. Criteria crit = session.createCriteria(User.class);  
  2. crit.setFirstResult(51);  
  3. crit.setMaxResult(50);  
  4. List users = crit.list(); 

setMaxResult()设置返回的信息条数,setFirstResult()设置查询结果的初始位置,上面的程序段可以实现分页。

以上提供了一个简单的Criteria查询实例。

【编辑推荐】

  1. Hibernate缓存简介及分类
  2. Hibernate中使用DetchedCriteria
  3. Hibernate之Criteria进阶查询
  4. Hibernate之Criteria基本查询
  5. Hibernate的事务:事务对象的方法
责任编辑:book05 来源: 百度博客
相关推荐

2009-06-30 16:44:10

Criteria基本查

2009-06-30 16:46:45

Criteria进阶查

2009-06-17 14:17:40

Criteria条件查Hibernate

2009-09-28 12:57:54

Hibernate C

2009-09-22 08:39:59

Hibernate F

2009-06-18 10:07:03

CriteriaHibernate

2009-06-26 16:15:04

Criteria的用法Hibernate

2009-09-24 13:03:38

Hibernate C

2009-06-30 16:52:30

DetchedCrit

2009-06-25 16:49:24

Hibernate

2009-09-23 10:28:49

使用Hibernate

2011-08-10 09:31:41

Hibernateunion

2009-09-25 16:57:49

Hibernate查询

2009-06-10 09:58:32

Oracle sequHibernate

2009-06-18 12:59:39

Criteria Qu深入浅出Hiberna

2009-09-23 13:04:58

HibernateOracle sequ

2009-06-26 10:32:00

QBC查询Hibernate

2009-09-27 16:21:22

Hibernate C

2009-09-23 17:05:52

Hibernate S

2021-01-04 05:43:59

LinuxBasename命令
点赞
收藏

51CTO技术栈公众号