当前位置: 首页 > 面试题库 >

我必须关闭每个EntityManager吗?

龙兴贤
2023-03-14
问题内容

我刚刚开始将自己的持久性框架迁移到JPA。

鉴于持久性框架隐藏了很多问题,我想知道不关闭EntityManagers是否会造成资源泄漏,或者框架是否会为我收集并关闭它们。

我打算在所有地方关闭它们,但是我必须关闭吗?

目前使用TopLink只是因为它可以轻松地与NetBeans一起使用,但是很高兴调查其他JPA提供程序。


问题答案:

这取决于您如何获得它。

如果使用EntityManagerFactory创建它,则无论使用哪种框架,都必须将其关闭。

如果使用依赖注入(例如,使用EJB和@PersistenceContext批注)获得了它,则不应该手动关闭它(AFAIK会导致RuntimeException)。



 类似资料:
  • 我们有一个java应用程序,我们使用多个语句变量。为什么需要多个语句的问题是,有时在为循环内的一个结果运行循环时,我们需要执行其他一些查询操作。大多数地方,单一的stmt被使用了很多次,最后我们关闭。现在我们要确认的是,我们没有关闭resultset变量,我们注意到内存的使用情况会波动。那么,在得到结果后立即关闭resultset的最佳机制是什么,还是在结束时关闭stmt之前关闭resultset

  • 问题内容: 我使用的是用这样的: 我只关门了。我是否还需要关闭()? 问题答案: 不,您只需要关闭最外面的流。它将一直委托给包装的流。 但是,您的代码包含一个概念上的失败,应该在中发生关闭,否则当代码在打开和关闭之间引发异常时,它永远不会关闭。 例如 (请注意,我更改了代码以 引发 异常,以便您了解问题的原因,该异常即包含有关问题原因的详细信息) 或者,当您已经在使用Java 7时,也可以使用AR

  • 我有一个servlet,它以XML格式响应。 客户端通过HttpSurlConnection连接到这个servlet。现在,如果客户端不调用会有问题吗? 非常感谢。

  • 我正在用java开发一个web应用程序,我对关闭MongoClient有疑问。 看到这http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started-with-java-driver MongoClient实例实际上代表到数据库的连接池;即使有多个线程,您也只需要一个Mongo

  • 我已经搜索了很多来识别spring JPA如何在打开EntityManager连接后关闭它。我已经使用@PersistenceContext将事务性EntityManager注入到我的Dao中,这意味着spring将负责为我创建和关闭EntityManager。然而,在我以前的实现中,我使用DAOs创建和关闭EntityManager,现在用spring代替了它。谁能帮我理解一下,spring是在

  • 问题内容: 我写的是,我正在使用Netbeans向每个函数添加类似专业的注释。因此,我从每一个开始,然后按来让Netbeans完成用于以下功能的默认注释方案。 到现在为止,我一直只在PHP语言中使用它,在这种情况下,如果遵循PHP函数确实包含了声明,则Netbeans始终仅在注释方案中添加部分。在所谓的“过程”(不返回任何值的函数)上,缺少此部分。 今天,我为Javascript函数尝试了同样的事