【问题标题】:Problems while saving a pre-persisted object in Google App Engine (Java)在 Google App Engine (Java) 中保存预持久对象时出现问题
【发布时间】:2010-11-25 05:21:35
【问题描述】:

我在 google-app-engine 数据存储中保存预持久化的 JDO 对象时遇到问题。基本上,在一个 servlet 中,我创建对象并保存它。在另一个 servlet 中,我读取了对象,设置了一堆属性并尝试更新它。更新是通过对 PersistenceManagermakePersistent 调用进行的。没有抛出异常,也没有警告日志。但是,当我稍后访问同一个对象时,它仍然处于原始状态。

PersistenceManager 在读取和更新之间永远不会关闭(如 Datastore documentation 中所建议的那样)

唯一可能与文档中的示例不同的是,读取是针对列表的,但更新是针对独立对象完成的。文档中没有任何内容不鼓励这样做。会不会有问题?

为了完成上下文,我仅在 Eclipse 中尝试此操作,尚未在 AppEngine 中实际尝试过。对可能发生的事情有什么建议吗?

【问题讨论】:

    标签: java eclipse google-app-engine jdo


    【解决方案1】:

    原来的问题是 PersistenceManager 需要在 makePersistent 调用之后关闭。我也试过了,现在可以了。当然,您需要在下次调用 JDO 之前重新打开 PersistenceManager。它以任何一种方式工作 - 无论您是按原样保存列表,还是保存独立对象,通过检索可能已经在列表形式中。

    【讨论】:

    • 当我选择 JDO 时,这对我来说是一个令人讨厌的问题。在我的脑海中,我认为 PM 类似于 JDBC 连接,但事实并非如此。
    猜你喜欢
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 2019-10-08
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    相关资源
    最近更新 更多