2010-07-28 103 views
24

我是ORM的新手。我刚刚开始阅读关于使用Hibernate的Java持久性API的书籍和文档。什么时候应该关闭EntityManagerFactory?

我只是想知道,关闭EntityManagerFactory是类似于jdbc数据库连接关闭?

我们应该在每次持续/更新/删除后关闭它吗?如果我们不关闭它,数据库连接会保持打开状态吗?

+0

如果EM持有连接如果“主机”或“父母”关闭,连接如何保持打开状态?那有意义吗 ? – 2011-02-02 02:48:31

回答

32

我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗?

这并不完全正确,但关闭EntityManagerFactory将更接近销毁整个连接池。如果你想考虑JDBC连接,你应该认为EntityManager

我们应该在每次持续/更新/删除后关闭它吗?

创建EntityManagerFactory是一个非常昂贵的操作,应该在应用程序(你在应用程序的结束close吧)的一生做一次。所以,不,你不应该为每个持久/更新/删除操作关闭它。

EntityManagerFactory对于所有创建一次,你通常得到每个请求,这是在该请求的一端封闭的EntityManagerEntityManager每请求是针对多用户的客户机/服务器应用程序的最常见的模式)。

如果我们不关闭它,数据库连接会保持打开状态吗?

作为暗示,那就是实际上是关联到一个数据库连接EntityManager和关闭EntityManager实际上会释放JDBC连接(最常见的,其返回到池)。

相关问题