我是App Engine的新手。我想更新数据存储区中实体的某些字段。为此,我创建了如下所示的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;
       }

最佳答案

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

10-05 21:18
查看更多