Olá,
Fiz uma pequena aplicação que mescla Spring + Hibernate + DWR.
Existem 3 operações realizadas de modo assincrono, na mesma tela:
Adição de um Livro
Busca de livros pelo nome ou parte do nome
Exclusão de um livro listado
Quando eu excluo um livro, eu mando ele atualizar os livros buscados novamente.
O que acontece é que quando eu listo muitos livros e resolvo apagar um por um, as vezes não da tempo de comitar a transação entre eu mandar apagar um livro e outro e o livro que eu mandei apagar acaba entrando na listagem… aí se eu clico para apagar de novo depois da transação ser comitada, da erro pois estou tentando apagar um livro que não existe…
Pensei em 2 coisas:
1 - Existe alguma configuração que trata isso e eu não estou usando
2 - Operações de update não devem ser feitas tão assincronamente junto com buscas
Qual frase esta certa?
Alguém pode me ajudar a solucionar este problema?
EDIT* as configurações da transação:
<property name="transactionAttributes">
<props>
<prop key="save">PROPAGATION_REQUIRED</prop>
<prop key="addBook">PROPAGATION_REQUIRED</prop>
<prop key="deleteBook">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
</props>
</property>