您的位置:首页 > 其它

DetachedCriteria对象实现离线查询

2014-10-21 20:54 344 查看
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<ClazzMenuEntity> menuList = clazzMenuDao.findByExample(dc);        


              

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


未完成。。。待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息