navegaPagina(dao, form);
convenioDAO.setPaginable(true);
convenioDAO.setPageSize(15); // Tamanho da página
convenioDAO.setPageNum(form.getPageNum()); // Página atual
**2.** Dentro do DAO, deve-se executar uma consulta para retornar o total de registros da listagem e alterar a consulta original para trazer apenas os dados da página atual, conforme o código abaixo.
Query q = getSession().createQuery("from Entidade");
if (isPaginable()){
if (getCount() == 0) {
Query count = getSession().createQuery("select count(*) from Entidade");
setCount(((Long) count.uniqueResult()).intValue());
}
q.setFirstResult(((getPageNum() - 1) * getPageSize()));
q.setMaxResults(getPageSize());
}
return q.list();
**3.** Após colocar o código da consulta na action, salvar os dados da paginação conforme o código abaixo:
List lista = dao.findAll();
setAttributePaginacao(req, dao);
req.setAttribute("paginable", "true");
req.setAttribute("lista", lista);
**4.** Utilizar a tag
// Pode-se passar atributos hidden para se a action precisar.
===== JavaServer Faces =====
**1. ** Acrescentar ao método em que a consulta da listagem será realizada um parâmetro do tipo ''PagingInformation''. Se o paging for diferente de null, executar uma consulta para retornar a quantidade total de registros da listagem. Setar o total no objeto paging e modificar a consulta principal para trazer apenas os dados da página atual, conforme o código abaixo.
public List findByXyz(..., PagingInformation paging) {
Query q = getSession().createQuery(hql);
// Setar parâmetros...
if(paging != null){
Query count = getSession().createQuery(countHql);
// Setar parâmetros...
paging.setTotalRegistros(((Long) count.uniqueResult()).intValue());
q.setFirstResult(paging.getPaginaAtual() * paging.getTamanhoPagina());
q.setMaxResults(paging.getTamanhoPagina());
}
return q.list();
}
**2.** No managed bean, informar o tamanho da página utilizando o método setTamanhoPagina() e chamar o método do DAO, utilizando o método getPaginacao() para informar o parâmetro de paginação ao DAO. Ver código abaixo.
public List getAll(){
//Define quandos itens serão exibidos
setTamanhoPagina(40);
return getDao(EntidadeDao.class).findXyz(..., getPaginacao());
}
**3.** Colocar na JSP o código para mudar de página:
Registro(s) Encontrado(s)