首页  >  文章  >  数据库  >  Spring JPA 如何管理与 Hibernate 的连接?

Spring JPA 如何管理与 Hibernate 的连接?

Barbara Streisand
Barbara Streisand原创
2024-10-26 15:47:30877浏览

How Does Spring JPA Manage Connections with Hibernate?

了解 Spring JPA 与 Hibernate 中的连接管理

在 Spring JPA (Hibernate) 中,连接是通过 Spring 事务管理器的相互作用来管理的、JPA Transaction API、Hibernate Session 接口和底层连接池。

事务启动和绑定

  1. 事务服务方法由 TransactionInterceptor 方面拦截.
  2. TransactionIntreceptor 将管理委托给 JpaTransactionManager。
  3. JpaTransactionManager 将 Spring 事务绑定到 EntityManager。

连接获取和关闭

  1. JPA Transaction API 使用 EntityManager Transaction API 来发起事务。
  2. Hibernate 的 Session 使用 JDBC Connection 来管理事务。
  3. 事务结束时(提交/回滚) ),JdbcTransaction 关闭。
  4. 这会触发 Hibernate Session 关闭和 JDBC 连接关闭。
  5. 连接池将连接返回到池中。

连接池

返回到池中的连接由连接池数据源管理。 JDBC 连接本身是一个代理,它拦截关闭调用并将它们委托给连接池,从而防止物理数据库连接终止。

RESOURCE_LOCAL 事务

对于 RESOURCE_LOCAL 事务,请考虑设置 hibernate.connection.provider_disables_autocommit 属性以确保在需要时延迟获取数据库连接,以防止由于连接池中禁用自动提交而导致的自动提交问题。

以上是Spring JPA 如何管理与 Hibernate 的连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn