sql >> Database >  >> RDS >> Mysql

Outer transactie in een geneste transactie use case ziet geen updates persistent in database (JPA, MySQL, Spring Framework en Hibernate)

Ik weet niet hoe de transactie "nesten" wordt gedaan in Hibernate (omdat ik niet geloof dat MySQL transacties daadwerkelijk kan nesten).

Dus ik neem aan dat de tweede (geneste) transactie (?) een nieuwe verbinding met de database moet zijn - anders zou het niet mogelijk zijn om de "geneste" transactie terug te draaien zonder de "buitenste" transactie te beïnvloeden.

Als dit inderdaad het geval is, wordt u waarschijnlijk getroffen door het standaardisolatieniveau van MySQL, namelijk REPEATABLE READ waardoor de buitenste transactie geen gegevens kan zien die na . zijn vastgelegd die transactie begon.

Om deze theorie te testen, probeer het isolatieniveau (van de buitenste transactie) te veranderen in READ COMMITTED en kijk of dat het probleem oplost.



  1. Een opgeslagen datumveld gebruiken om een ​​veld te berekenen dat het huidige aantal verstreken dagen berekent

  2. Hoe de LIKE-operator werkt in MariaDB

  3. java jdbc mysql-connector:hoe loskoppelen op te lossen na een lange inactieve tijd

  4. Hoe de actie voor een externe sleutel te wijzigen