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:
[code]public List listaTodosPaginada(int firstResult, int maxResults) {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery 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;
}[/code]
Classe DataModel que extende LazyDataModel:
[code]public class DataModelPatrimonios extends LazyDataModel {
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;
}[/code]
e o Bean:
[code]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);
}[/code]