当前位置: 首页 > 知识库问答 >
问题:

JTA在Springboot中与Hibernate一起推荐吗

赫连捷
2023-03-14

我必须使用Hibernate和Spring启动。是否建议在此堆栈中使用JTA事务管理器?

如果推荐JTA,如何在控制器或服务层以编程方式访问当前会话?举例会更有帮助。

共有1个答案

涂羽
2023-03-14

正如Spring留档所说:

通常,只有当应用程序需要处理跨多个资源的事务时,才需要应用程序服务器的JTA功能,这不是许多应用程序的要求。

根据Spring靴留档:

通过使用Atomikos或Bitronix嵌入式事务管理器,Spring Boot支持跨多个XA资源的分布式JTA事务。在部署到合适的Java EE应用服务器时,也支持JTA事务。

当检测到JTA环境时,Spring的JtaTransactionManager用于管理事务。自动配置的JMS、DataSource和JPA bean都已升级以支持XA事务。您可以使用标准的Spring习惯用法,例如事务性的,来参与分布式事务。

至于你的第二个问题,你可以看看这个答案。

 类似资料:
  • 并用@Transactional注释了具体类。 我们使用Jboss应用服务器支持通过JNDI与MQ集成。这里的问题是,如果监听器中的任何层有任何异常,则整个事务不会回滚,消息也不会移动到退出队列。很明显,当我们使用Hibernate事务管理器时,它不知道其他资源,如JMS事务。 我可以安全地用JTA事务替换它吗,因为Jboss将处理整个事务管理?这样做是否有任何可预见的风险?

  • 我还从jboss文档中看到https://docs.jboss.org/hibernate/validator/4.3/api/org/hibernate/validator/method/methodConstraintViolationException.html是不推荐的,但是它没有指定它被替换了什么。有人知道吗?

  • spring cloud 版本问题 https://sca.aliyun.com/docs/2022/overview/version-explain/?spm=5176.29160081.0.0.748065cbJIDby8 Spring Cloud Alibaba Version Spring Cloud Version Spring Boot Version 2022.0.0.0* Spri

  • 我在使用hibernate和Oracle db执行限制条件时遇到问题。 简化的标准是: 这给了我NullPointerExceltion。我明白,我需要把setEscape处理(假)为了忽略括号{}在{宠物},但我不知道如何做到这一点,因为我正在使用标准。 如果有人能帮助我,我会很高兴的。 这是生成的异常: java.lang.oracle.jdbc.driver.T4C8Oall.getNumR

  • Git 命令行增强 diff-so-fancy diff so fancy 截图 git-extras Ubuntu $ sudo apt-get install git-extras Mac OS X with Homebrew $ brew install git-extras $ git-summary project : github-roam repo age : 2 year

  • jboss narayana jta事务管理器是在我的独立java应用程序中实现的。我可以将事务管理器从jta集成到Hibernate吗?当我调用jta事务管理器的commit方法时,hibernate所做的所有更改也应该提交。请以身作则。