Paginando pesquisa do hibernate

		try {
			Criteria criteria = session.createCriteria(super.getPersistentClass());

			if((empresa.getNome() != null) && (!empresa.getNome().equals(""))) {
				criteria.add(Expression.ilike("nome", "%" + empresa.getNome() + "%"));
			}

			if((empresa.getCodigo() != null) && (!empresa.getCodigo().equals(""))) {
				criteria.add(Expression.ilike("codigo", empresa.getCodigo()));
			}

			if(empresa.getNatureza() != null) {
				criteria.add(Expression.eq("natureza.id", empresa.getNatureza().getId()));
			}

			if(empresa.getTipo() != 0) {
				criteria.add(Expression.eq("tipo", empresa.getTipo()));
			}
			
			criteria.addOrder(Order.asc("nome"));

			List<Empresa> empresas = (ArrayList<Empresa>) criteria.list();

			return empresas;
		} catch (Exception e) {
			throw new DAOException(e);
		}

Como eu adciona ao criteria para pegar apenas os 10 primeiros, ou do 10 ao 20 registro???

Atenciosamente,

criteria.setFirstResult(10);//Registro inicial
criteria.setMaxResults(10);//Qtde de registros a partir do registro inicial.

[]'s