java - query - ¿Cómo podemos conseguir que JPA EntityManager Flush funcione?
jpa sql (1)
mi pregunta es por qué la descarga no funciona:
public void ejbService(){
Customer c = em.find(Customer.class,1);
c.setName("newName");
em.flush();
//at this point when I query mysql table I can not see "newName"
thread.sleep(10000);
c.setName("anotherName");
}
Después de terminar el método, veo "anotherName" en la base de datos y también lo compruebo con em.find (Customer.class, 1, Lock.None); pero aun así no funciona
RGDS
Se está sonrojando, pero no está cometiendo, o finalizando la transacción / sesión que probablemente esté configurada para el compromiso automático.
Sí, después de llamar a flush()
, el DBMS ahora está al tanto de sus datos, pero siguiendo los estándares de ACID, ninguna otra sesión de base de datos verá estos datos hasta que se le indique al DBMS que la confirme.
Sin conocer detalles adicionales sobre la arquitectura detrás del resto de su aplicación, etc., probablemente esté buscando hacer algo como:
em.getTransaction().commit();