我在google-app-engine数据存储中保存预先存在的JDO对象时遇到问题。基本上,在一个servlet中,我创建了对象并保存它。在另一个servlet中,我读取了对象,设置了一堆属性并尝试更新它。更新是通过 PersistenceManager 上的 makePersistent 调用。抛出没有异常,也没有警告日志。但是,当我稍后访问同一个对象时,它仍处于原始状态。
PersistenceManager 永远不会在读取和更新之间关闭(如Datastore documentation中所述)
唯一可能与文档中的示例不同的是,读取是针对列表的,但更新是针对独立对象完成的。文档中没有任何内容可以阻止这一点。这可能是个问题吗?
要完成上下文,我只在Eclipse中尝试这个,并且还没有在AppEngine中实际尝试过。有关可能发生的事情的任何建议吗?
答案 0 :(得分:1)
原来问题是 makePersistent 调用后需要关闭 PersistenceManager 。我尝试了同样的,它现在有效。当然,在下次调用JDO之前,需要重新打开 PersistenceManager 。它可以以任何方式工作 - 无论是按原样保存列表,还是保存独立对象,通过检索可能已经在列表表单中。