Hola,
Cita:
Iniciado por malome88 ... como hago lo que comentas de hacerlo en otra transacción? ...
En algún lugar de tu aplicación se realiza una transacción, normalmente los EJB son transaccionales, pero no sabemos cuales son los límites de la transacción en tu aplicación, donde se inicia y donde termina.
Normalmente los Managed Beans no son transaccionales, aunque se pueden extender las transacciones hasta estos no es adecuado. Si esa fuera la arquitectura de tu aplicación con hacer un refresh antes del findAll debería funcionar.
Código Java:
Ver originalpublic String getCitas
(Cliente c
){ hLN.updateCliente(c); // Método que haría el Upate.
this.citas = hLN.getCitas(c);
return "hC";
}
Aunque no es seguro que funcione porque depende de la estructura y los límites de la transacción de tu aplicación.
Cita:
Iniciado por malome88 ... He añadido lo siguiente: em.getEntityManagerFactory().getCache().evictAll() ;
y parece que funciona. ...
Exactamente, borrando la cache es otro método, o desactivando la cache en el Persistence Unit. El único problema es que borra
todos los caches; y otra vez, dependiendo de tu aplicación esto es algo que posiblemente no quieras hacer por motivos de desempeño.
Todo depende de tu aplicación y la forma que te funcione mejor.
Saludos,