LazyDataModel

1 resposta
Leo_Holanda

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);
	}

1 Resposta

Hebert_Coelho

Dá uma olhada nesse post: Lazy JSF Datatable Pagination (Primefaces).

Ele mostra um passo a passo de como fazer.

Criado 22 de outubro de 2012
Ultima resposta 22 de out. de 2012
Respostas 1
Participantes 2