Ainda continuo com o erro acima referente a inicialização do Apache quando mando rodar a aplicação.
Isto aparentemente não está interferindo, mas o erro existe.
O que acontece agora é que tive que colocar um flush antes do commit. No exemplo passado pelo Hibernate isto acontecia apenas em uma cituação, eu coloquei nas duas.
if (request.getAttribute(END_OF_CONVERSATION_FLAG) != null ||
request.getParameter(END_OF_CONVERSATION_FLAG) != null) {
currentSession.flush();
currentSession.getTransaction().commit();
currentSession.close();
httpSession.setAttribute(HIBERNATE_SESSION_KEY, null);
} else {
currentSession.flush(); // adicionado para conseguir excluir e alterar
currentSession.getTransaction().commit();
httpSession.setAttribute(HIBERNATE_SESSION_KEY, currentSession);
}
O único problema agora é que quando mando excluir, os registros da listagem não estão atualizando.
Eu fiz da seguinte forma:
Tenho um método listar para abrir a tabela de clientes com o seguinte código:
public String listaClientes() {
this.clientes = null;
this.cliente = null;
this.endereco = null;
this.clientes = new ClienteDao().listarTodos();
return "listaClientes";
}
Dentro da listagem de clientes (JSF Page) eu tenho um link que chama o botão excluir com o seguinte código:
public String excluiCliente() {
FacesContext context = FacesContext.getCurrentInstance();
Map<String, String> params = context.getExternalContext().getRequestParameterMap();
Long idCliente = Long.valueOf(params.get("idCliente"));
ClienteDao dao = new ClienteDao();
this.cliente = dao.get(idCliente);
dao.excluir(this.cliente);
return this.listaClientes();
}
O registro é excluído com sucesso, mas os registros da página não são atualizados.
O que posso fazer para resolver?
Quando eu clico em novo ou em alterar isto funciona, sendo que a chamada ao listaClientes() ocorre em todos da mesma forma.