2

我从 appengine 数据存储区的每个示例中看到,使用 try{}finally{} 块包围查询执行等非常重要,以确保查询始终关闭。

如果查询或持久性管理器未关闭但超出范围会发生什么?一个实体会永远无法访问吗?

4

1 回答 1

0

关闭 PersistenceManager 可能会将其释放到可用 PersistenceManager 池中,或者可能会被垃圾收集,由 JDO 实现选择。

我对此的解释是,如果您让 PersistanceManager 超出范围而不关闭它,那么它将垃圾收集并且不会被释放到可用的 PersistenceManager 池中,这可能会在调用 PersistenceManagerFactory.getPersistenceManager() 时导致额外开销(如果有)不再有可用的 PersistenceManagers。

于 2011-01-11T19:07:13.370 回答