2016-07-28 11 views
1

Ich habe ein Objekt innerhalb der Transaktion aktualisiert, es wurde erfolgreich aktualisiert und mit der Datenbank synchronisiert ... aber immer wenn ich die Entitäten mit query.getResultList() abrufe, wird die Liste nicht mit aktualisierten Objekten und Werten zurückgegeben.So erhalten Sie aktualisierte Entitäten aus der JPA-Ergebnisliste.

Hier wird, bezieht sich Code, wie ich ... zum Aktualisieren eines Objekts

javax.persistence.EntityManager entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("jdbc:oracle:thin:@Siddhant-PC:1521:XEPU").createEntityManager(); 
    javax.persistence.Query professionalWorkQuery = java.beans.Beans.isDesignTime() ? null : entityManager.createQuery("SELECT p FROM ProfessionalWork p order by p.jobNo"); 
    java.util.List<ProfessionalWork> professionalWorkList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : professionalWorkQuery.getResultList(); 

-Code zu tun ...

ProfessionalWork proWork = entityManager.find(ProfessionalWork.class, jobNo); 

       entityManager.getTransaction().begin(); 
        proWork.setStatus("Ready"); 
        proWork.setReadyTime(DateWrapper.getTime()); 
       entityManager.getTransaction().commit(); 

-Code für alle Objekte Abrufen ...

professionalWorkList = professionalWorkQuery.getResultList(); 
    Iterator lab = professionalWorkList.listIterator(); 
    while(lab.hasNext()){ 
      ProfessionalWork pWork = (ProfessionalWork) lab.next(); 
      System.out.println(pWork.getJobNo()+" -- "+pWork.getStatus()); 
       //Here i'm getting All Objects(even newly added objects also...but i'm not getting my modified values in objects) 
    } 
professionalWorkList.clear(); 
+0

Können Sie dies einmal versuchen, professionalWorkQuery.setHint ("javax.persistence.cache.storeMode", "REFRESH"); –

+0

Danke Bruder ... Es funktionierte für mich ... :) –

+0

Stört es dich die Antwort zu akzeptieren, wenn es funktioniert :) –

Antwort

Verwandte Themen