Pessoal, estou com um problema na atualização dos dados gravados no meu sistema. O sistema foi desenvolvido com Java, Hibernate e Primefaces e banco de dados MySql.
O problema é que as vezes quando gravo uma informação esta informção não e´atualizada no DataTable. Ex.:
Tenho um programa que grava notas fiscais, e estas notas podem ser canceladas. Quando faço o cancelamento, o sistema deve excluir o titulo gerado, retirar a mercadoria do estoque e se for proveniente de pedido deve atulizar o saldo de quantidade de produtos entregues. O problema é que mesmo o titulo sendo excluido e o saldo do estoque atualizado, ao entrar nas DataTables de titulos e estoque o saldo continua errado. (Mas no banco de dados esta certo).
Ai para ficar com os dados atualizados tenho que reiniciar o servidor.
Segue abaixo o código para salvar estas alterações.
public void cancelarNotaFiscal(NotaFiscal notaFiscal, List<Titulo> titulosASeremExcluidos,
List<ItemDoPedido> itensDoPedido, List<ItemDoAlmoxarifado> itensDoAlmoxarifado,
List<MovimentacaoContabil> movimentacoesContabeis) {
Session sessao = HibernateUtil.getFabricaDeSessoes().openSession();
Transaction transacao = null;
try {
transacao = sessao.beginTransaction();
if (titulosASeremExcluidos!= null && titulosASeremExcluidos.size() > 0) {
for (Titulo tit : titulosASeremExcluidos) {
sessao.delete(tit);
}
}
if (itensDoPedido != null && itensDoPedido.size() > 0) {
for (ItemDoPedido item : itensDoPedido) {
sessao.update(item);
}
}
if (itensDoAlmoxarifado != null && itensDoAlmoxarifado.size() > 0) {
for (ItemDoAlmoxarifado item : itensDoAlmoxarifado) {
sessao.update(item);
}
}
if (movimentacoesContabeis != null && movimentacoesContabeis.size() > 0) {
for (MovimentacaoContabil movCont : movimentacoesContabeis) {
sessao.update(movCont);
}
}
if (notaFiscal.getItensDaNotaFiscal() != null) {
for (ItemDaNotaFiscal itemNF : notaFiscal.getItensDaNotaFiscal()) {
sessao.delete(itemNF);
}
}
notaFiscal.setStatus('C');
sessao.update(notaFiscal);
sessao.flush();
transacao.commit();
} catch (RuntimeException erro) {
transacao.rollback();
throw erro;
} finally {
sessao.close();
}
}
Obs.: Preciso muito resolver este problema pois esta me gerando um transtorno enorme.Caso alguem tenha interesse em analisar melhor o codigo podemos alinhar um valor para esta consultoria.