2012-05-29 114 views
2

我有下面的代碼將查詢實體,並設置一個隨機數:更新查詢結果JPA

EntityManager em = EMF.get().createEntityManager(); 
    Profile user = null; 
    Query q = null; 
    try{ 
     q = em.createNamedQuery("Profile.getRandomProfile"); 
     q.setParameter("random", Math.random()); 
     q.setMaxResults(1); 
     user = (Profile) q.getSingleResult(); 

     user.setRandom(Math.random()); 

    } catch(NoResultException ex){ 
      ex.printStackTrace(); 
    } 

我認爲這樣做會更新配置文件的隨機屬性。爲什麼不更新?如何更新隨機屬性?

+1

你應該確保上面的代碼事務內部執行。如何做到這一點取決於你的環境(EJB容器?Spring?基礎應用程序?)。 –

+0

基本應用。正如James所建議的那樣,它現在可以工作。 –

回答

0

您不保存回數據庫。您應該使用merge()方法一個EntityManager在事務內更新

+0

不,他不應該這樣做。 JPA自動更改連接的實體,並在提交事務之前自動刷新。 –