Tenho uma p:dataTable
com diversos atributos da entidade PROJETO, e ao lado uma coluna com um botão para remover a entidade da linha. Meu método de remover não está funcionando, por mais que seja idêntico a outro bean que opera normalmente...
Configuração da p:dataTable
:
<p:dataTable value="#{projetoBean.projetos}" var="projeto"
id="tabelaProjetos" paginator="true" rows="10">
Botão na mesma p:dataTable
:
<p:column headerText="Remover" style="width: 48px;">
<div align="center">
<p:commandButton icon="fa fa-fw fa-remove"
actionListener="#{projetoBean.remover(projeto)}"
update="formTabelaProjetos" />
</div>
</p:column>
Método remover do ProjetoBean:
public void remover(Projeto projeto) {
System.out.println("Removendo projeto");
projeto.remove(projeto.getEmpresa()); //Retira o projeto da lista de projetos da EMPRESA
new DAO<Projeto>(Projeto.class).remove(projeto); //Remove do banco
DAO<Projeto> dao = new DAO<Projeto>(Projeto.class); //Refaz a lista de projetos
this.projetos = dao.listaTodos(); //Refaz a lista de projetos
}
Método Remover da DAO genérica:
public void remove(T t) {
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
em.remove(em.merge(t));
em.getTransaction().commit();
em.close();
}