`

[转]QBC 之 DetchedCriteria

阅读更多

原理DetchedCriteria  是由于这个原因才加入啊

DetchedCriteria  

Criteria與Session綁定,其生命週期跟隨著Session結束而結束,使用Criteria時進行查詢時,每次都要於執行時期動態建立物件,並加入各種查詢條件,隨著Session的回收,Criteria也跟著回收。

為了能夠重複使用Criteria物件,在Hibernate 3中新增了DetchedCriteria,您可以先建立DetchedCriteria實例,並加入各種查詢條件,並於需要查詢時再與Session綁定,獲得一個綁定Session的Criteria物件,例如:

java 代码
  1. // 先建立DetchedCriteria物件   
  2. DetachedCriteria detchedCriteria = DetachedCriteria.forClass(User.class);   
  3. // 加入查詢條件   
  4. detchedCriteria.add(Restrictions.ge("age",new Integer(25)));   
  5.            
  6. Session session = sessionFactory.openSession();   
  7. // 綁定Session並返回一個Criteria實例   
  8. Criteria criteria = detchedCriteria.getExecutableCriteria(session);   
  9.            
  10. List users = criteria.list();   
  11. Iterator iterator =  users.iterator();   
  12. System.out.println("id \t name/age");   
  13. while(iterator.hasNext()) {   
  14.     User ur = (User) iterator.next();   
  15.     System.out.println(ur.getId() +   
  16.                                " \t " + ur.getName() +   
  17.                                "/" + ur.getAge());               
  18. }   


 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics