当前位置: 首页 > 面试题库 >

Spring + Hibernate + JTA-HibernateTransactionManager或JTATransactionManager

葛飞扬
2023-03-14
问题内容

我想集成 SpringHibernate, 并使用 JTA
来管理事务。我还想将事务处理委托给App服务器,在我的例子中是JBoss。我有一个关于Spring中“ transactionManager
bean 的配置的查询:

1)我们可以使用 HibernateTransactionManager 并在hibernate.properties文件中设置属性
hibernate.transaction.factory_class
hibernate.transaction.manager_lookup_class 吗?如果没有,为什么?

2)或者,我们应该使用 JTATransactionManager 吗?

在选项(2),我们还需要在设置属性(“hibernate.transaction.factory_class”,“hibernate.transaction.manager_lookup_class属性”)
hibernate.properties

谢谢。


问题答案:

如果要委派给应用服务器,就我所知,必须使用JTATransactionManager,HibernateTransactionManager不是JTA事务管理器。

单个Hibernate SessionFactory的PlatformTransactionManager实现。将一个Hibernate
Session从指定的工厂绑定到线程,可能允许每个工厂一个线程绑定的Session。SessionFactoryUtils和HibernateTemplate知道线程绑定的Session,并自动参与此类事务。对于需要支持此事务处理机制的Hibernate访问代码,必须使用其中之一或通过SessionFactory.getCurrentSession()进行操作。



 类似资料:
  • 问题内容: 与朋友一起开发应用程序,但遇到一个问题…我有以下代码: 然后他删除了所有内容,将其更改为: 他说,这是更好的方法,但没有确切解释原因。 关于不直接使用hibernate方式的问题,这是否意味着我们不再使用hibernate方式了?这真的更好吗? DAO更改如下: 我有: 现在是: 问题答案: 他希望您的代码依赖于JPA,而不是Hibernate。是JPA(Java EE)标准接口,同时

  • 我正在开发一个以JPA(Hibernate)为后端的应用程序。我对每个实体都有一个DAO和JPADAO,我的流程将不止一个实体作为一个工作单元进行更新,所以我决定使用JTA,因为它允许我控制事务,所以我的代码看起来是持久的。xml 现在,当我尝试开始一个事务并将更改提交给实体(不止一个)时,它会抛出和异常,并调用utx。回滚但不会回滚它只提交了部分事务,并没有保存所有实体

  • 有人使用过Spring Boot的spring-boot-starter-jta-atomikos特性吗?我在网上找不到任何教程或文档。我知道Spring Boot+Spring Data JPA+Atomikos+multiple database文章。我想知道使用spring-boot-starter-jta-atomikos是否更容易配置相同的配置。 任何指向文档或教程的指针都非常感谢!

  • 我使用的是spring batch 2.1.9。这个版本支持JTA事务吗?我有一个批处理作业定义,它有多个步骤。这些步骤中只有一个与工作单元中的多个数据源交互。 是否可以将JtaTransactionManager应用于这一步骤?当spring batch试图更新表中的元数据信息时,我发现了以下异常。 如果不是step,如果我在作业级别设置JtaTxnMgr,它会工作吗?我会避免这种情况,因为其他

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

  • 问题内容: 我正在阅读使用Spring框架进行的事务管理。在第一个组合中,我使用了Spring + hiberante,并使用了Hibernate的API来控制事务(Hibenate API)。接下来,我想使用注释进行测试,它确实起作用。 我对此感到困惑: JPA,JTA,Hibernate是否具有它们自己的事务管理方式。例如,考虑如果我使用Spring + Hibernate,在那种情况下您会使