criteria进行分页查询

public List findStockByStockPO(List Parameter1, int from, int size,
			StockPO po) {
		logger.info("##StartfindStockByStockPO");
		List list = new ArrayList();
		List result = new ArrayList();
		super.getSession().clear();
		Criteria criteria = super.getSession().createCriteria(StockPO.class);
		criteria.add(Restrictions.eq("stockPK.country", po.getStockPK()
				.getCountry()));
		criteria.add(Restrictions.eq("marketType", po.getMarketType()));
		criteria.add(Restrictions.eq("currencyType", po.getCurrencyType()));

		if (null != po.getStockPK().getStockNO())
			criteria.add(Restrictions.eq("stockPK.stockNO", po.getStockPK()
					.getStockNO()));
		if (null != po.getStockInternationalId())
			criteria.add(Restrictions.eq("stockInternationalId", po
					.getStockInternationalId()));
		if (null != po.getStockReservationType4Entity())
			criteria.add(Restrictions.eq("stockReservationType4Entity", po
					.getStockReservationType4Entity()));
		if (null != po.getStockReservationType4TDCC())
			criteria.add(Restrictions.eq("stockReservationType4TDCC", po
					.getStockReservationType4TDCC()));
		if (null != po.getStockReservationType4Strip())
			criteria.add(Restrictions.eq("stockReservationType4Strip", po
					.getStockReservationType4Strip()));

		criteria.setFirstResult(from);
		criteria.setMaxResults(size);
                //from为起始页数size为一页10条数据
               //获得10条记录的集合
		result = criteria.list();
		list.add(0, result);
		criteria.setFirstResult(0);
		criteria.setProjection(Projections.projectionList().add(
				Projections.rowCount()));
                //获得满足条件的总记录数
		int count = ((Integer) criteria.uniqueResult()).intValue();
		list.add(1, new Integer(count));

		logger.info("##LIST" + list.size() + "--" + count);
		return list;
	}
 

你可能感兴趣的:(Criteria)