更新谷歌应用引擎的数据存储中的查询 - java

时间:2014-03-24 12:34:11

标签: java android google-app-engine jpa google-cloud-datastore

我是app引擎的新手。我想在数据存储区中更新我的实体的某些字段。为此,我创建了query,如下所示,但它既没有更新我的实体也没有抛出错误。我不知道我哪里出错。我提到了this SO post,但我有大量的数据。因此,对我来说,很难获取数百条记录并坚持下去。请帮我解决这个问题。

代码:

@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;
       }

2 个答案:

答案 0 :(得分:1)

查询只会向数据存储区询问满足条件的一组对象并检索这些对象。要更新需要检索的对象(例如查询),请更新此对象,然后将其放回数据存储区(通过调用ORM put方法)。

答案 1 :(得分:0)

如果您是AppEngine的新用户,并且希望以简单的方式使用数据存储区,则应该查看Objectify。它是数据存储区的java ORM。以下是该项目的简短描述:

Objectify是专为Google App Engine数据存储区设计的Java数据访问API。它占据了“中间地带”;比JDO或JPA更容易使用和更透明,但比低级API更方便。 Objectify旨在让新手立即高效工作,同时也展示了GAE数据存储的全部功能。

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