dúvida template Hibernate

pessoal estou com dúvida nesses dois métodos templates do Hibernate

public List<T> findByExample(final T example, final int first, final int max) { try { final Criteria c = this.getSession().createCriteria(this.objectClass); c.add(Example.create(example)); if (first != 0) { c.setFirstResult(first); } if (max != 0) { c.setMaxResults(max); } return c.list(); } catch (final HibernateException e) { throw this.convertHibernateAccessException(e); } }

não entendi o que são esses parâmetros int first, e int max…

e nesse metodo

public int listAllPageCount() { try { final List<T> l = this.listAll(); final Integer i = new Integer(l.size()); return i.intValue(); } catch (final HibernateException e) { throw this.convertHibernateAccessException(e); } }

ele serve pra quê…

O primeiro é para uma busca paginada, esses dois parametros dizem qual o intervalo de registro que você quer.

por exemplo se você quizer pegar registros de 10 em 10, você ia passando os valores desses parametros assim
0,10
10,20
20,30

e assim vai

o segundo retorna quantos registros tem na tabela