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

Barbara Streisand
发布: 2024-10-26 15:47:30
原创
973 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板