我们什么时候应该关闭EntityManagerFactory?
我是ORM的新手。 我刚开始阅读有关使用Hibernate的Java Persistence API的书籍和文档。
我只是想知道,关闭EntityManagerFactory与jdbc数据库连接关闭类似吗?
是否应该在每次持续/更新/删除后关闭它? 如果我们不关闭它,数据库连接是否会保持打开状态?
我只是想知道,关闭
EntityManagerFactory
与jdbc数据库连接关闭类似吗?
这不完全正确,但关闭EntityManagerFactory
将更接近于销毁整个连接池。 如果你想思考JDBC连接,你应该想想EntityManager
。
是否应该在每次持续/更新/删除后关闭它?
创建EntityManagerFactory
是一项非常昂贵的操作,应该在应用程序的生命周期内完成一次(在应用程序结束时close
它)。 所以,不,你不应该为每个持久/更新/删除操作关闭它。
EntityManagerFactory
为所有人创建一次,您通常会为每个请求获取一个EntityManager
,该请求在请求结束时关闭(每个请求的EntityManager
是多用户客户端/服务器应用程序的最常见模式)。
如果我们不关闭它,数据库连接是否会保持打开状态?
正如所暗示的那样, EntityManager
实际上与数据库连接相关联,关闭EntityManager
实际上会释放JDBC连接(最常见的是,将其返回到池中)。
- 嵌套事务用例中的外部事务没有看到数据库中持久存在的更新(JPA,MySQL,Spring Framework和Hibernate)
- JPA为什么要使用createNamedQuery
- 具有自定义类型更改的Hibernate字段,但对象未标记为“脏”以进行更新
- JPA还是Hibernate for Java Persistence?
- 通过hibernate比较sql server中的时间
- @Id @GeneratedValue但设置了自己的ID值
- HibernateTemplate与SessionFactory
- spring数据jpa和hibernate分离的实体传递给ManyToMany关系持久化
- 使用注释扩展hibernate实体