Hola,
Posiblemente, en su forma más simple podría ser así,
Managed Bean
Código Java:
Ver originalpublic void update() {
myEnterpriseBean.merge(theCitaEntity);
myEnterpriseBean.refresh(theCitaEntityPrimaryKey);
}
En el managed bean, después de hacer el merge, haces un refresh, aunque le puedes pasar solamente la llave primaria para hacer el refresh. Como en este caso los EJB son transaccionales, el update se va a hacer en una transacción y el refresh en otra.
EJB
Código Java:
Ver originalpublic T merge(T t) {
return theEntityManager.merge(t);
}
public void refresh(U u) {
theEntityManager.refresh(theEntityManager.getReference(TheClass, u));
}
El método refresh del EntityManager necesita la entidad, para obtener la entidad sin cargarla de nuevo solamente usas getReference; este método necesita la Clase de la Entidad y la llave primaria.
De esa forma se actualiza la Entidad después de hacer el merge, y vuelve a traer los datos de la base de datos. Podrías probar a hacerlo después de hacer el merge de la Entidad que no se actualizaba o antes de hacer el findAll.
Saludos,