我从 appengine 数据存储区的每个示例中看到,使用 try{}finally{} 块包围查询执行等非常重要,以确保查询始终关闭。
如果查询或持久性管理器未关闭但超出范围会发生什么?一个实体会永远无法访问吗?
我从 appengine 数据存储区的每个示例中看到,使用 try{}finally{} 块包围查询执行等非常重要,以确保查询始终关闭。
如果查询或持久性管理器未关闭但超出范围会发生什么?一个实体会永远无法访问吗?
关闭 PersistenceManager 可能会将其释放到可用 PersistenceManager 池中,或者可能会被垃圾收集,由 JDO 实现选择。
我对此的解释是,如果您让 PersistanceManager 超出范围而不关闭它,那么它将被垃圾收集并且不会被释放到可用的 PersistenceManager 池中,这可能会在调用 PersistenceManagerFactory.getPersistenceManager() 时导致额外开销(如果有)不再有可用的 PersistenceManagers。