2016-07-28 54 views
1

我已經更新了事務中的一個對象,它已成功更新並與數據庫同步......但是無論何時使用query.getResultList()檢索實體,它都不會使用更新的對象和值返回List。如何從JPA resultList獲取更新的實體。

這裏的代碼是指我如何做...

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(); 

代碼更新對象...

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

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

代碼檢索所有的對象......

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

您可以嘗試一次,professionalWorkQuery.setHint(「javax.persistence.cache.storeMode」,「REFRESH」); –

+0

謝謝兄弟...它爲我工作... :) –

+0

你介意接受答案,如果它工作:) –

回答