Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Transakcja zewnętrzna w przypadku użycia transakcji zagnieżdżonej nie wyświetla aktualizacji utrwalonych w bazie danych (JPA, MySQL, Spring Framework i Hibernate)

Nie wiem, jak odbywa się „zagnieżdżanie” transakcji w Hibernate (ponieważ nie wierzę, że MySQL może faktycznie zagnieżdżać transakcje).

Założyłbym więc, że druga (zagnieżdżona) transakcja musi (?) być nowym połączeniem z bazą danych - w przeciwnym razie nie byłoby możliwe wycofanie „zagnieżdżonej” transakcji bez wpływu na „zewnętrzną” transakcję.

Jeśli rzeczywiście tak jest, prawdopodobnie trafiłeś na domyślny poziom izolacji MySQL, którym jest REPEATABLE READ co nie pozwoli zewnętrznej transakcji zobaczyć żadnych danych, które zostały zatwierdzone po ta transakcja się rozpoczęła.

Aby przetestować tę teorię, spróbuj zmienić poziom izolacji (zewnętrznej transakcji) na READ COMMITTED i zobacz, czy to rozwiąże problem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstępnie załadować tabele do puli buforów INNODB za pomocą MySQL?

  2. wstaw do procedury składowanej z parametrami MYSQL nie działa

  3. MySQL select wydaje się bardzo powolny, ale nie możesz pomyśleć, jak to ulepszyć?

  4. MySQL – jak usunąć tabelę, jeśli istnieje w bazie danych?

  5. Usunąć wiele wierszy z PDO i polami wyboru za pomocą przygotowanych wyciągów?