今天学会的DetachedCriteria用法

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

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);

你可能感兴趣的:(Java)