sql >> Databasteknik >  >> RDS >> Mysql

New EntityManager får ibland inaktuella data från MySQL

Av någon anledning trodde jag att den implicita transaktionen entityManager joins var en ny transaktion. Men Vilolägesdokument a> stat:"När du skapar en enhetshanterare i en transaktion ansluter enhetshanteraren automatiskt till den aktuella transaktionen."

Så tydligen finns det en annan transaktion som redan körs (inte överraskande) och mina hämtningsresultat ändras beroende på vad den redan hade läst (eftersom databasen körs i REPEATABLE-READ-läge.)

På kort sikt kommer jag att svepa igenom min kod för att explicit påbörja() transaktioner varhelst det saknas. På längre sikt kommer jag att undersöka Spring Transactions för att se hur transaktioner hanteras på ett mer idiotsäkert sätt (som föreslogs i kommentarerna.)




  1. viloläge dialekt för oracle 12c

  2. MacOS Kan inte starta MySQL Server

  3. Hur ställer jag in standardteckenuppsättningen?

  4. Frågar konversationer från meddelandetabellen