1

目前我正在做一个涉及使用 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();
}

我在这里有什么遗漏吗?

4

1 回答 1

2

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

检查日志会发现很多东西,比如调用 makePersistent 没有任何价值

于 2013-04-25T06:35:01.240 回答