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

Nowy EntityManager czasami pobiera nieaktualne dane z MySQL

Z jakiegoś powodu pomyślałem, że niejawna transakcja, do której przyłącza się podmiot entityManager, jest nową transakcją. Ale Zahibernuj dokumenty state:"Kiedy tworzysz menedżera encji w ramach transakcji, menedżer encji automatycznie dołącza do bieżącej transakcji."

Najwyraźniej jest już uruchomiona inna transakcja (nie jest to zaskakujące), a moje wyniki pobierania zmieniają się w zależności od tego, co już przeczytała (ponieważ baza danych działa w trybie REPEATABLE-READ).

W krótkim okresie przeszukam mój kod, aby jawnie rozpocząć () transakcje wszędzie tam, gdzie tego brakuje. Na dłuższą metę przyjrzę się Spring Transactions, aby zobaczyć, jak zarządzać transakcjami w bardziej niezawodny sposób (jak sugerowano w komentarzach).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaawansowane (?) zapytanie AND / OR

  2. Należy do wielu, weź wszystkie wiersze (Laravel)

  3. Filtrowanie SQL według wielu kolumn

  4. MySQL kopiuje użytkownika

  5. Przyczyny błędu uwierzytelniania MySQL:Odmowa dostępu dla użytkownika 'xxx'@'yyy'?