我是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;
}
答案 0 :(得分:1)
查询只会向数据存储区询问满足条件的一组对象并检索这些对象。要更新需要检索的对象(例如查询),请更新此对象,然后将其放回数据存储区(通过调用ORM put方法)。
答案 1 :(得分:0)
如果您是AppEngine的新用户,并且希望以简单的方式使用数据存储区,则应该查看Objectify。它是数据存储区的java ORM。以下是该项目的简短描述:
Objectify是专为Google App Engine数据存储区设计的Java数据访问API。它占据了“中间地带”;比JDO或JPA更容易使用和更透明,但比低级API更方便。 Objectify旨在让新手立即高效工作,同时也展示了GAE数据存储的全部功能。