2016-07-28 2 views
1

성공적으로 업데이트되고 데이터베이스와 동기화되는 트랜잭션 내에서 객체를 업데이트했습니다 ... 그러나 query.getResultList()를 사용하여 엔티티를 가져올 때마다 업데이트 된 객체 및 값으로 List를 반환하지 않습니다. 내가 뭘 어떻게 여기 JPA resultList에서 업데이트 된 엔터티를 얻는 방법.?

코드는 ... 모든 객체를 검색하는 ... 개체를 업데이트 ...

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

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

코드를

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

코드를 의미한다

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

만약 당신이 대답을 받아들이겠습니까 :) –

답변

관련 문제