sql >> Database teknologi >  >> RDS >> Mysql

Ydre transaktion i en indlejret transaktionsbrugssituation ser ikke opdateringer vedvarer i databasen (JPA, MySQL, Spring Framework og Hibernate)

Jeg ved ikke, hvordan transaktionen "nesting" udføres i Hibernate (da jeg ikke tror på, at MySQL faktisk kan indlejre transaktioner).

Så jeg vil antage, at den anden (indlejrede) transaktion skal (?) være en ny forbindelse til databasen - ellers ville det ikke være muligt at rulle den "indlejrede" transaktion tilbage uden at påvirke den "ydre" transaktion.

Hvis dette virkelig er tilfældet, så er du sandsynligvis ramt af MySQL's standard isolationsniveau, som er REPEATABLE READ som ikke lader den ydre transaktion se nogen data, der er blevet begået efter den transaktion startede.

For at teste denne teori, prøv at ændre isolationsniveauet (for den ydre transaktion) til READ COMMITTED og se om det løser problemet.



  1. Unix-socket-forbindelse til MySql med Java for at undgå JDBC's TCP/IP-overhead?

  2. Udfør mysql-kommando før testscript på GitLab CI

  3. Formatering af tal med kommaer i MariaDB

  4. Unikt, uforudsigeligt, 12-cifret, heltals-id