sql >> Databáze >  >> RDS >> Mysql

Nový EntityManager někdy získává zastaralá data z MySQL

Z nějakého důvodu jsem si myslel, že implicitní transakce, ke které se entityManager připojí, byla nová transakce. Ale Hibernace dokumentů stav:"Když vytvoříte správce entity v rámci transakce, správce entity se automaticky připojí k aktuální transakci."

Zřejmě tedy již probíhá jiná transakce (nepřekvapivé) a mé výsledky načítání se mění v závislosti na tom, co již přečetla (protože databáze běží v režimu REPEATABLE-READ.)

V krátkodobém horizontu projdu svůj kód, abych explicitně zahájil transakce begin() všude tam, kde to chybí. Z dlouhodobého hlediska se podívám na Spring Transactions, abych zjistil, jak spravovat transakce spolehlivějším způsobem (jak bylo navrženo v komentářích.)




  1. Deset hlavních důvodů pro migraci z Oracle na PostgreSQL

  2. php tvůrce kvízu s více možnostmi výběru

  3. substr nefunguje dobře s utf8

  4. přesun dat z jedné tabulky do druhé, edice postgresql