Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/01/2014, 10:27
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Problema JSF + EJB + JPA

Hola,

Posiblemente, en su forma más simple podría ser así,

Managed Bean
Código Java:
Ver original
  1. public void update() {
  2.   myEnterpriseBean.merge(theCitaEntity);
  3.   myEnterpriseBean.refresh(theCitaEntityPrimaryKey);
  4. }
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 original
  1. public T merge(T t) {
  2.   return theEntityManager.merge(t);
  3. }
  4.  
  5. public void refresh(U u) {
  6.   theEntityManager.refresh(theEntityManager.getReference(TheClass, u));
  7. }
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,