一尘不染

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

hibernate

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

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

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


阅读 541

收藏
2020-06-20

共1个答案

一尘不染

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

这并非完全正确,但关闭EntityManagerFactory则更可能破坏整个连接池。如果您想考虑JDBC连接,则应该考虑EntityManager

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

创建an
EntityManagerFactory是一项非常昂贵的操作,并且应在应用程序的整个生命周期内完成一次操作(您close可以在应用程序的结尾)。因此,不,您不应该为每个持久/更新/删除操作关闭它。

EntityManagerFactory一次对所有创建并那么通常可以EntityManager每个请求,这是在该请求的一端封闭(EntityManager每请求是针对多用户的客户机/服务器应用程序的最常见的模式)。

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

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

2020-06-20