我们什么时候应该关闭EntityManagerFactory?

时间:2010-07-28 06:46:08

标签: java hibernate jpa orm

我对ORM很新。我刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。

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

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

1 个答案:

答案 0 :(得分:36)

  

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

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

  

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

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

EntityManagerFactory为所有人创建一次,每次请求通常会得到EntityManager,请求结束时会关闭EntityManager每个请求是最常见的模式多用户客户端/服务器应用程序)。

  

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

正如所暗示的那样,EntityManager实际上与 a 数据库连接相关联,关闭EntityManager实际上会释放JDBC连接(最常见的是,将其返回到池)。