DetachedCriteria对象实现离线查询

Criteria对象在运行时与Session对象绑定,所以二者的生命周期想通,即当Session对象失效后,Criteria对象也失效。Criteria生命期短而且不能重复使用。
DetachedCriteria对象可以实现离线查询可以解决Criteria不足

离线查询在web应用在某些功能实现中很有用,如在分层的web应用中有需要实现动态条件查询。


获取数据库中表中字段某一值的全部记录的代码实例:


/*获取数据库中的ClassMenuEntity表中的字段id=pid的全部记录
这属于web工程里Action类的代码段*/
String pid = request.getParameter("pid");
DetachedCriteria dc = DetachedCriteria.forClass(ClazzMenuEntity.class);//创建实例
dc.add(Restrictions.eq("parentMenuEntity.id", pid));
List menuList = clazzMenuDao.findByExample(dc);         

              

/*
这段为DaoImpl中的代码段
getSessionFactory().getCurrentSession()获取当前的session(spring)
*/
public List findByExample(DetachedCriteria dc) {
     return dc.getExecutableCriteria(getSessionFactory().getCurrentSession()).list();
}


未完成。。。待续

你可能感兴趣的:(hibernate)