Dashboard > OpenSource Project > ... > Hibernate 3入門 > DetchedCriteria
OpenSource Project Log In   View a printable version of the current page.
DetchedCriteria
Added by zach14c, last edited by zach14c on Aug 16, 2005
Labels: 
(None)

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

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

// 先建立DetchedCriteria物件
DetachedCriteria detchedCriteria = DetachedCriteria.forClass(User.class);
// 加入查詢條件
detchedCriteria.add(Restrictions.ge("age",new Integer(25)));
        
Session session = sessionFactory.openSession();
// 綁定Session並返回一個Criteria實例
Criteria criteria = detchedCriteria.getExecutableCriteria(session);
        
List users = criteria.list();
Iterator iterator =  users.iterator();
System.out.println("id \t name/age");
while(iterator.hasNext()) {
    User ur = (User) iterator.next();
    System.out.println(ur.getId() +
                               " \t " + ur.getName() +
                               "/" + ur.getAge());            
}

Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.5a Build:#411 Mar 16, 2006) - Bug/feature request - Contact Administrators