Tengo una aplicación web usando JPA. Este administrador de entidades guarda un montón de entidades y de repente actualizo la base de datos desde el otro lado. Yo uso MySQL y uso PhpMyAdmin y cambio alguna fila.Actualización de EntityManager
Cómo decirle al administrador de entidades que vuelva a sincronizar, p. Ej. ¿olvidó todas las entidades en el caché?
Sé que hay refresh(Object)
método, pero ¿hay alguna posibilidad de cómo hacer refreshAll()
o algo así como resultado de esto?
Es seguro que esto es una operación costosa, pero si tiene que hacerse.
salvó mi tiempo. Muchas gracias !! –
Sé que tengo un par de años, pero quería aportar mis dos centavos. No estoy exactamente seguro de que esto pueda llamarse la respuesta. evictAll() funciona en el escenario donde desea que los datos nuevos sean persistentes/fusionados para ignorar lo que se almacena en caché y forzar la actualización/inserción de la base de datos. Sin embargo, evictAll() NO funciona (al menos para mí) en el escenario donde primero la base de datos back-end cambia un valor y ENTONCES espera que el cambio aparezca cuando se extrae del almacén de datos. En mi experiencia, el caché aún anula lo que se modificó en el back-end. –