您的位置:首页 > 其它

Hibernate中Criteria的完整用法

2015-04-28 11:43 232 查看
一、查询对象

a、DetachedCriteria dc = DetachedCriteria.forClass(CredAnnexKhImage.class);
b、dc.add(Restrictions.eq("custCompanyInfo.id", custId));
c、dc.addOrder(Order.asc("parentType"));
d、执行:(List<CredAnnexKhImage>) this.baseDao.getListForCriteria(dc);

      补充:Restrictions用法

1、Restrictions.like("reportDate", year + "%");
2、Restrictions.or(可有多个条件用,分隔);
3、Restrictions.in("checkResult", new String[]{"0", "1", "2"});
4、Restrictions.isNull("checkResult")
二、CallableCriteria
      1、用法:

a、CallableCriteria.getInstance(baseDao, cls).in("id", ids).addOrder(order).list();
// baseDao:接口;cls:对象;ids:数组;order:参数;
三、查询分页
public void queryPage(DetachedCriteria detachedCriteria, Page page) {
Criteria criteria = detachedCriteria.getExecutableCriteria(getSession());
Integer count = (Integer) criteria.setProjection(Projections.rowCount()).uniqueResult();
if (null != count) {
page.setTotalProperty(count);
}
LOGGER.debug("count:" + count);
criteria.setProjection(null);
criteria.setResultTransformer(CriteriaSpecification.ROOT_ENTITY);
LOGGER.debug("PAGE PARAM start:" + page.getStart() + " limit:" + page.getLimit());
page.setRoot(criteria.setFirstResult(page.getStart()).setMaxResults(page.getLimit()).list());
}

四、参考文档

1、http://langgufu.iteye.com/blog/2039554
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: