目前我正在开发一个涉及使用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();
}
这里有什么我想念的吗?
答案 0 :(得分:2)
直接更新公共字段?噢亲爱的。如果你这样做,没有持久性机制有希望知道你更新了该字段。使用setter,或将更新类增强为@PersistenceAware。
检查日志会发现许多事情,比如调用makePersistent没有价值