2014-03-24 88 views
1

我是應用程序引擎的新手。我想更新數據存儲中的實體的一些字段。爲此,我創建瞭如下所示的query,但它既不更新我的實體也不拋出錯誤。我不知道我要去哪裏錯。我提到this SO post,但我有大量的數據收集。因此,對我來說,它很難取得數百條記錄並堅持下去。請幫我解決這個問題。谷歌應用程序引擎的DataStore更新查詢 - java

代碼:

@ApiMethod(name = "updateUserProfile", httpMethod = HttpMethod.GET, path = "userfeedmasterendpoint/updateProfile") 
public void updateUserProfile(@Named("userName") String uName, 
      @Named("uAbout") String userAbout) 
    { 
     EntityManager mgr = null; 
     try { 
       mgr = getEntityManager(); 
       Query query = mgr 
         .createQuery("update UserFeedMaster u set u.userAbout = :uAbout where u.userName=:userName"); 
       query.setParameter("userName", uName); 
       query.setParameter("uAbout", userAbout); 
       query.executeUpdate(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return; 
     } 
+0

如果要保存這樣的,我建議你嘗試:https://github.com/mungo-appengine/mungo – xybrek

回答

1

的查詢只要求一組滿足一個條件對象的數據存儲和檢索這些。要更新一個對象,您需要檢索它(例如查詢),更新此對象,然後將其放回數據存儲區(通過調用您的ORM put方法)。

+0

好...你是想說,我可以在數據存儲中執行Update更新? – zanky

+0

有沒有其他方法可以做到這一點? – zanky

+0

是的,看到這個SO反應http://stackoverflow.com/questions/10330120/update-query-using-jpa-and-google-app-engine。 – user3355018

0

如果您是AppEngine的新手,並且希望以簡單的方式使用數據存儲,則應該查看Objectify。它是數據存儲的Java ORM。下面是該項目的簡短說明:

Objectify是專爲Google App Engine數據存儲設計的Java數據訪問API。它佔據了「中間地帶」;比JDO或JPA更易於使用和更透明,但比低級API方便得多。 Objectify旨在讓新手立即生產,同時也暴露GAE數據存儲的全部能力。

https://code.google.com/p/objectify-appengine/