2

我从appengine数据存储的每个示例都可以看出,使用try {} finally {}块来包围查询执行等是非常重要的,以确保查询始终关闭。未能关闭查询或持久性管理器的后果是什么?

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

+0

好问题! – 2011-01-11 18:23:13

回答

0

Closing a PersistenceManager 可能会释放它到 可用PersistenceManagers池,或 可能被垃圾收集,在JDO实现的 选项。

我的这种解释是,如果你让一个PersistanceManager走出去的范围,无需关闭它,然后它进行垃圾回收,并会被释放到可用PersistenceManagers的池,这可能如果没有更多可用的PersistenceManagers,则在调用PersistenceManagerFactory.getPersistenceManager()时会导致额外开销。