我在ORM上还很新。我刚刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。
我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗?
我们是否应该在每次持久/更新/删除后关闭它?如果我们不关闭它,数据库连接会保持打开状态吗?
EntityManagerFactory
这并非完全正确,但关闭EntityManagerFactory则更可能破坏整个连接池。如果您想考虑JDBC连接,则应该考虑EntityManager。
EntityManager
我们是否应该在每次持久/更新/删除后关闭它?
创建an EntityManagerFactory是一项非常昂贵的操作,并且应在应用程序的整个生命周期内完成一次操作(您close可以在应用程序的结尾)。因此,不,您不应该为每个持久/更新/删除操作关闭它。
close
在EntityManagerFactory一次对所有创建并那么通常可以EntityManager每个请求,这是在该请求的一端封闭(EntityManager每请求是针对多用户的客户机/服务器应用程序的最常见的模式)。
如果我们不关闭它,数据库连接会保持打开状态吗?
作为暗示,它的EntityManager,实际上是关联到 一个 数据库连接和关闭EntityManager将真正释放JDBC连接(最常见的,其返回到池)。