Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Giao dịch bên ngoài trong một trường hợp sử dụng giao dịch lồng nhau không thấy các bản cập nhật vẫn tồn tại trong cơ sở dữ liệu (JPA, MySQL, Spring Framework và Hibernate)

Tôi không biết giao dịch "lồng vào nhau" được thực hiện như thế nào trong Hibernate (vì tôi không tin rằng MySQL thực sự có thể lồng các giao dịch).

Vì vậy, tôi sẽ giả định rằng giao dịch thứ hai (lồng nhau) phải (?) Là một kết nối mới với cơ sở dữ liệu - nếu không sẽ không thể khôi phục giao dịch "lồng nhau" mà không ảnh hưởng đến giao dịch "bên ngoài".

Nếu đây thực sự là trường hợp, thì có thể bạn đã gặp phải mức cô lập mặc định của MySQL là REPEATABLE READ điều này sẽ không cho phép giao dịch bên ngoài thấy bất kỳ dữ liệu nào đã được cam kết sau giao dịch đó đã bắt đầu.

Để kiểm tra lý thuyết này, hãy thử thay đổi mức cô lập (của giao dịch bên ngoài) thành READ COMMITTED và xem liệu điều đó có giải quyết được vấn đề hay không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Max () trả về kết quả sai

  2. Tab Bootstrap động sử dụng PHP / MySQL

  3. mysql GRANT + WHERE

  4. Làm cách nào để xử lý các dấu ngoặc kép bên trong một truy vấn SQL trong PHP?

  5. truy vấn php không chạy?