Boa tarde.
Estou tentando fazer um update do meu objeto a partir do hibernate.
Antes, busco o meu objeto no banco de dados e seto o novo valor para o campo “status”:
Transaction tx = session.beginTransaction();
Query q = session.createQuery ("from CadForne as forne where forne.codforne = "+codForne);
CadForne cadForne = (CadForne) q.uniqueResult();
cadForne.setStatus(9);
Após, faço o update:
session.saveOrUpdate(cadForne);
session.getTransaction().commit();
session.close();
Quando vai executar o comandosession.getTransaction().commit();, o netBeans simplesmente para!
Não gera nenhuma excessão nem acontece mais nada!
Esperei durante 10 minutos e não acontece nada, ou seja, o update não acontece.
Tenho que acabar por parar o programa.
Alguem tem alguma idéia do que possa ser ?
Obrigado!
Você nem precisaria fazer o session.saveOrUpdate(cadForne); caso o objeto esteja dentro da mesma transação.
- Você tem certeza de que está chegando no código? Você debugou e viu passar pela linha de update?
[quote=Hebert Coelho]Você nem precisaria fazer o session.saveOrUpdate(cadForne); caso o objeto esteja dentro da mesma transação.
- Você tem certeza de que está chegando no código? Você debugou e viu passar pela linha de update?[/quote]
Opa. Obrigado pela resposta.
Na verdade não está dentro da mesma transação.
Sim… debuguei e vi passar pela linha de código.
Vi também a query sql sendo executada no console (update).
Alguma idéia ?
Obrigado!
Descobri.
Como estou fazendo uma aplicação de teste, para conferir os dados na base de dados, eu faço select sempre com o “for update” no final, para, se precisar, eu poder deletar dados na mão e testar novamente.
Aparentemente, eu estava com a tabela “lock”, pois sempre quando eu tentava dar um update na mesma, antes eu executava o comando select … for update, para ver se a tabela havia sido updatada.
Por mais incrivel que pareça, acredito que seja isso sim.
Se alguem tiver algo a complementar, fica a vontade.
Obrigado!
Não tem nenhuma outra transação que está dando lock nessa tabela?
Alguma da aplicação ou até mesmo uma IDE que acessa o seu banco com transação aberta?
[quote=FernandoCartaxo]Não tem nenhuma outra transação que está dando lock nessa tabela?
Alguma da aplicação ou até mesmo uma IDE que acessa o seu banco com transação aberta?[/quote]
Pior que não.
Realmente era isso que eu falei no post acima, por incrivel que pareça!