Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A transação externa em um caso de uso de transação aninhada não está vendo atualizações persistidas no banco de dados (JPA, MySQL, Spring Framework e Hibernate)


Não sei como a transação "aninhamento" é feita no Hibernate (já que não acredito que o MySQL possa realmente aninhar transações).

Então, eu diria que a segunda transação (aninhada) deve (?) ser uma nova conexão com o banco de dados - caso contrário, não seria possível reverter a transação "aninhada" sem afetar a transação "externa".

Se este for realmente o caso, você provavelmente será atingido pelo nível de isolamento padrão do MySQL, que é REPEATABLE READ que não permitirá que a transação externa veja os dados que foram confirmados depois essa transação começou.

Para testar essa teoria, tente alterar o nível de isolamento (da transação externa) para READ COMMITTED e veja se isso resolve o problema.