Estou utlizando p:dataTable com paginacao, para isso eu retorno uma lista de um dataModel, mas os links na linha que servem para alterar e excluir param de funcionar...
Quando o retorno é uma lista do objeto tudo funciona, mas quando é dataModel (necessario para paginação) para de funcionar...
<p:dataTable value="#{listaObjetosBean.dataModel}" var="objeto" paginator="true" rows="5" lazy="true">
<p:column headerText="Ações">
<p:commandLink id="ajax" update=":listagem" actionListener="#{objetoBean.remover(objeto)}" ajax="true">
<h:outputText value="Remover" />
</p:commandLink>
-
<p:commandLink value="Alterar" update=":insercao" >
<f:setPropertyActionListener value="#{objeto}" target="#{objetoBean.objeto}" />
</p:commandLink>
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;
import br.com.dao.DAO;
import br.com.modelo.Objeto;
public class DataModelObjetos extends LazyDataModel<Objeto> implements Serializable {
private static final long serialVersionUID = -6132969163305784568L;
public List<Objeto> load(int inicio, int quantidade, String campoOrdenacao, SortOrder sentidoOrdenacao, Map<String,Object> filtros) {
DAO<Objeto> dao = new DAO<Objeto>(Objeto.class);
return dao.listaTodosPaginada(inicio, quantidade);
}
}
DAO >>>
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;
}
BEAN >>>
private LazyDataModel<Objeto> dataModel;
public ListaObjetosBean() {
this.dataModel = new DataModelObjetos();
DAO<Objeto> dao = new DAO<Objeto>(Objeto.class);
this.dataModel.setRowCount(dao.contaTodos());
}
A paginação esta funcionando perfeitamente, so os links dentro da tabela que pararam de funcionar...