Hibernate中Criteria的完整用法

来源:互联网 发布:js输入框不可编辑 编辑:程序博客网 时间:2024/05/18 03:19

一、查询对象

   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

0 0