sql >> Base de Datos >  >> RDS >> Mysql

New EntityManager a veces obtiene datos obsoletos de MySQL

Por alguna razón, pensé que la transacción implícita que se une al EntityManager era una nueva transacción. Pero Documentos de Hibernate estado:"Cuando crea un administrador de entidades dentro de una transacción, el administrador de entidades se une automáticamente a la transacción actual".

Entonces, aparentemente, ya hay otra transacción en ejecución (no es sorprendente) y mis resultados de búsqueda cambian según lo que ya había leído (porque la base de datos se ejecuta en modo REPEATABLE-READ).

A corto plazo, analizaré mi código para comenzar explícitamente () las transacciones donde falte. A más largo plazo, investigaré Spring Transactions para ver cómo administrar las transacciones de una manera más infalible (como se sugirió en los comentarios).