GAE持久化值不在已部署的应用程序中更新,而是在本地

时间:2013-04-24 21:09:58

标签: java google-app-engine persistence jdo

目前我正在开发一个涉及使用JDO的GAE的小项目,但是我似乎有一个问题是持久化更新的数据 - 奇怪的是它在本地工作但不在应用程序的部署版本中。 更新非常简单:

update(Foo newBar) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    Transaction trans = pm.currentTransaction();
    trans.begin();
    Foo bar = pm.getObjectById(Foo.class, "someId");
    bar.baz = newBar.baz;
    pm.makePersistent(bar);
    trans.commit();
    pm.close();
}

这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

直接更新公共字段?噢亲爱的。如果你这样做,没有持久性机制有希望知道你更新了该字段。使用setter,或将更新类增强为@PersistenceAware。

检查日志会发现许多事情,比如调用makePersistent没有价值