java - 让 JDO 持久性管理器保持 Activity 状态而不是关闭它?

标签 java google-app-engine jdo

持久性管理器通常需要关闭吗?你能不能一直打开一个并重复使用它,即重复这个模式:

Transaction tx = pm.currentTransaction();
try {
    tx.begin();
    // do stuff
    tx.commit();
} finally {
    if (tx.isActive()) tx.rollback();
}

这样做的缺点是什么?这似乎是有道理的,因为由于持久性管理器被关闭,您永远不需要“分离”对象?

最佳答案

如果需要,您可以一直打开它。要考虑的主要问题是当您运行“更新”查询时,您希望更改多快生效。关闭持久性管理器会立即保留这些更改,而不明确地这样做将依赖于数据存储在它自己方便的时候保留您的更改。如果您正在使用事务,则这无关紧要。除此之外,真的没有任何缺点。在 PM 的第一次初始化(部署后首次使用)时有很大的 cpu + 时间开销,但在打开/关闭 PM 之后基本上是免费的。

关于java - 让 JDO 持久性管理器保持 Activity 状态而不是关闭它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3378131/

相关文章:

java - 从父类列表中提取子类元素

java - 具有属于不同类型 parent 的实体的类型

google-app-engine - 为 GoogleAppEngine 构建 Maven,强制包含 JDO 库?

java - 如何为 IntelliJ IDEA 中的所有项目设置默认项目位置?

java - 如何在 Java 中配置 .dll 文件?

java - 设计并实现在程序中实现星期几的类 Day

python - Google App Engine Python - 按 ListProperty 中的密度排序

google-app-engine - 使用 Google App Engine 进行网页抓取

java - 谷歌应用程序引擎在第一次坚持后默默地坚持失败

google-app-engine - 如何自动获取 JDO 嵌套实体集合?