您的位置:首页 > 其它

今天学会的DetachedCriteria用法

2013-02-14 18:43 218 查看
以前用hibernate,一般都是使用hql语句的,因为和sql比较相近,对Criteria总是不屑一顾的,这个单词也那么难拼,也不会念!呵呵,今天才发现,这个还是比较适合动态多个条件的,也就是根据参数的个数增加where后面的条件个数,唉out很久了,把用法记录一下:

Java代码







DetachedCriteria dc = DetachedCriteria.forClass(Msg.class);
if(StringUtils.hasText(key)){
dc.add(Restrictions.like("content", "%" + key + "%"));
}
if(start!=null){
dc.add(Restrictions.ge("sendat", start));
}
if(end!=null){
dc.add(Restrictions.le("sendat", end));
}
//返回符合条件的记录数
return ((Long)hibernateTemplate.findByCriteria(dc.setProjection(Projections.rowCount())).get(0)).intValue();
//返回分页的记录数
return hibernateTemplate.findByCriteria(dc, page*rows-rows, rows);

DetachedCriteria dc = DetachedCriteria.forClass(Msg.class);
if(StringUtils.hasText(key)){
dc.add(Restrictions.like("content", "%" + key + "%"));
}
if(start!=null){
dc.add(Restrictions.ge("sendat", start));
}
if(end!=null){
dc.add(Restrictions.le("sendat", end));
}
//返回符合条件的记录数
return  ((Long)hibernateTemplate.findByCriteria(dc.setProjection(Projections.rowCount())).get(0)).intValue();
//返回分页的记录数
return hibernateTemplate.findByCriteria(dc, page*rows-rows, rows);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: