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

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

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

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

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

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

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

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

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

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

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