sql >> Databasteknik >  >> RDS >> Mysql

Yttre transaktion i ett kapslat transaktionsanvändningsfall ser inte uppdateringar kvar i databasen (JPA, MySQL, Spring Framework och Hibernate)

Jag vet inte hur transaktionen "kapsling" görs i Hibernate (eftersom jag inte tror att MySQL faktiskt kan kapsla transaktioner).

Så jag skulle anta att den andra (kapslade) transaktionen måste (?) vara en ny anslutning till databasen - annars skulle det inte vara möjligt att återställa den "kapslade" transaktionen utan att påverka den "yttre" transaktionen.

Om så verkligen är fallet drabbas du antagligen av MySQL:s standardisoleringsnivå som är REPEATABLE READ som inte låter den yttre transaktionen se någon data som har begåtts efter den transaktionen startade.

För att testa denna teori, försök att ändra isoleringsnivån (för den yttre transaktionen) till READ COMMITTED och se om det löser problemet.



  1. Ansluter till en MySQL-databas i .NET

  2. Behöver konvertera Oracle Merge till query till PostgreSQL

  3. IRI produktnomenklatur och arkitektur

  4. Java hämta ResultSet från SQL Array misslyckas