示例代碼如下:

  1. package com.hb3.pack_01;

  2. import java.util.Iterator;
  3. import java.util.List;

  4. import org.hibernate.Criteria;
  5. import org.hibernate.Session;
  6. import org.hibernate.SessionFactory;
  7. import org.hibernate.cfg.Configuration;
  8. import org.hibernate.criterion.DetachedCriteria;
  9. import org.hibernate.criterion.Restrictions;

  10. import com.hb3.pack_01.model.User;

  11. public class BusinessService {

  12.     public static void main(String[] args) {
  13.         
  14.         Configuration config = new Configuration().configure();
  15.         SessionFactory sessionFactory = config.buildSessionFactory();      
  16.         
  17.         
  18.         DetachedCriteria detchedCriteria = DetachedCriteria.forClass(User.class);
  19.         detchedCriteria.add(Restrictions.ge("age",new Integer(20)));
  20.         
  21.         Session session = sessionFactory.openSession();
  22.         Criteria criteria = detchedCriteria.getExecutableCriteria(session); 
  23.         
  24.         List<?> users = criteria.list();
  25.         Iterator<?> iterator =  users.iterator();
  26.         System.out.println("id \t name/age");
  27.         while(iterator.hasNext()) {
  28.             User ur = (User) iterator.next();
  29.             System.out.println(ur.getId() + " \t " + ur.getName() + "/" + ur.getAge());    
  30.         }
  31.         
  32.         session.close();
  33.         sessionFactory.close();
  34.     }
  35. }

Criteria和Session綁定的,但DetachedCriteria則不同。

這是在Hibernate 3中新增的類,目的是為了能夠重復(fù)使用Criteria。其使用方法請參看前面對Criteria的介紹:



ExtJS教程- Hibernate教程-Struts2 教程-Lucene教程