Bom dia galera...
Estou tentando utilizar LazyDataModel(primefaces) em um aplicatvo de controle de patrimônio público, e não está listando dados não consigo encontrar o erro.
No meu caso trabalho com um DAO generico que possui o seguinte código:
public List<T> listaTodosPaginada(int firstResult, int maxResults) {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).setFirstResult(firstResult)
.setMaxResults(maxResults).getResultList();
em.close();
return lista;
}
public int contaTodos() {
EntityManager em = new JPAUtil().getEntityManager();
long result = (Long) em.createQuery("select count(p) from Patrimonio p").getSingleResult();
em.close();
return (int) result;
}
Classe DataModel que extende LazyDataModel:
public class DataModelPatrimonios extends LazyDataModel<Patrimonio> {
private static final long serialVersionUID = -588273882186649739L;
public List<Patrimonio> load(int inicio, int quantidade, String campoOrdenacao, boolean sentidoOrdenacao, Map<String,String> filtros) {
DAO<Patrimonio> dao = new DAO<Patrimonio>(Patrimonio.class);
return dao.listaTodosPaginada(inicio, quantidade);
}
@Override
public List<Patrimonio> load(int arg0, int arg1, String arg2,
SortOrder arg3, Map<String, String> arg4) {
// TODO Auto-generated method stub
return null;
}
e o Bean:
public class ListaPatrimoniosBean {
private LazyDataModel<Patrimonio> dataModel;
public ListaPatrimoniosBean() {
this.dataModel = new DataModelPatrimonios();
DAO<Patrimonio> dao = new DAO<Patrimonio>(Patrimonio.class);
this.dataModel.setRowCount(dao.contaTodos());
this.dataModel.setPageSize(5);
}