Hibernate中Criteria的完整用法 一、查询对象 [java] view plain copy 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用法 [java] view plain copy 1、Restrictions.like("reportDate", year + "%"); 2、Restrictions.or(可有多个条件用,分隔); 3、Restrictions.in("checkResult", new String[]{"0", "1", "2"}); 4、Restrictions.isNull("checkResult") 二、CallableCriteria 1、用法: [java] view plain copy a、CallableCriteria.getInstance(baseDao, cls).in("id", ids).addOrder(order).list(); // baseDao:接口;cls:对象;ids:数组;order:参数; 三、查询分页 [javascript] view plain copy 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()); }