JTAC 在 Spring Boot 中是不是推荐与 Hibernate 一起使用
Posted
技术标签:
【中文标题】JTAC 在 Spring Boot 中是不是推荐与 Hibernate 一起使用【英文标题】:Is JTA recommended with Hibernate in SpringbootJTAC 在 Spring Boot 中是否推荐与 Hibernate 一起使用 【发布时间】:2020-11-18 12:24:05 【问题描述】:我必须使用hibernate和spring boot。是否建议在此堆栈中使用 JTA 事务管理器?
如果推荐 JTA,如何在控制器或服务层以编程方式访问当前会话?举个例子会更有帮助。
【问题讨论】:
您使用哪个事务管理器不会改变您获取当前会话(或者更确切地说是 EntityManager)的方式。你真的需要 JTA 还是不需要? 我正在考虑使用 spring 的 JtaTransactionManager。 JTA 的原因是,根据要求,在单个事务范围内管理 2 个资源。 【参考方案1】:作为春季文档says:
通常,只有当您的应用程序需要处理跨多个资源的事务时,您才需要应用程序服务器的 JTA 功能,这对于许多应用程序来说不是必需的。
根据spring boot documentation:
Spring Boot 通过使用 Atomikos 或 Bitronix 嵌入式事务管理器来支持跨多个 XA 资源的分布式 JTA 事务。部署到合适的 Java EE 应用服务器时也支持 JTA 事务。
当检测到 JTA 环境时,使用 Spring 的
JtaTransactionManager
来管理事务。自动配置的 JMS、DataSource 和 JPA bean 已升级为支持 XA 事务。您可以使用标准 Spring 习惯用法,例如@Transactional
,来参与分布式事务。
第二个问题可以看this的回答。
【讨论】:
以上是关于JTAC 在 Spring Boot 中是不是推荐与 Hibernate 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
(转)收集 Spring Boot 相关的学习资料,Spring Cloud点这里 重点推荐:Spring Boot 中文索引