[Solución] Spark: Select no yendo a la base y retornándome entities desactualizadas #164
-
Buenas a todes, comparto esto porque me dio dolor de cabeza y terminó siendo hiper sencilla la solución. Utilizando Spark en ciertas rutas tenía un problema en la persistencia: luego de una continuación de selects yo hacía un save de una entidad modificada el cual estaba incluido en un withTransaction(), es decir se comitteaba y pasaba efectivamente a la DB, peeero luego un select en otra ruta me traía la entity desactualizada aún cuando utilizaba withTransacion(), entityManager().refresh(entidad), etc etc. @gastonprieto me comentó que esto se da porque el servidor levanta distintos hilos, y el entity manager es uno por hilo, ergo: el entity manager que estaba utilizando ese select era de un hilo viejo con la data cacheada. La solución fue colocar este lambda en el Routes.java, obligando a Spark a cerrar el entityManager luego de cada ejecución:
Y finalmente para que esto funcione agreguen el siguiente import:
Saludos 🖖 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Gracias! |
Beta Was this translation helpful? Give feedback.
Gracias!