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

New EntityManager får nogle gange forældede data fra MySQL

Af en eller anden grund troede jeg, at den implicitte transaktion, entityManager joins, var en ny transaktion. Men Dvaledokumenter a> stat:"Når du opretter en enhedsadministrator i en transaktion, slutter enhedsadministratoren sig automatisk til den aktuelle transaktion."

Så tilsyneladende er der en anden transaktion, der allerede kører (ikke overraskende), og mine henteresultater ændrer sig afhængigt af, hvad den allerede havde læst (fordi databasen kører i REPEATABLE-READ-tilstand.)

På kort sigt vil jeg gennemse min kode for eksplicit at begynde() transaktioner, hvor end det mangler. På længere sigt vil jeg se nærmere på Spring Transactions for at se, hvordan transaktioner administreres på en mere idiotsikker måde (som det blev foreslået i kommentarerne).




  1. Få den første mandag i et år i SQLite

  2. WordPress site migration - ikoner mangler

  3. Tilslutning af Linux og UNIX til Azure SQL Data Warehouse

  4. Sådan beskytter du en database med adgangskode i Access 2016