hibernate - Spring + Hibernate +JTA - HibernateTransactionManager 或 JTATransactionManager

标签 hibernate spring transactions jta

我想集成 SpringHibernate 并使用 JTA 来管理事务。我还想将事务处理委托(delegate)给 App 服务器,在我的例子中是 JBoss。我对 Spring 中“transactionManager”bean 的配置有疑问:

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

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

在选项(2)中,我们还需要在hibernate.properties中设置properties("hibernate.transaction.factory_class", "hibernate.transaction.manager_lookup_class")吗?

谢谢。

最佳答案

如果你想委托(delegate)给应用服务器,你必须使用 JTATransactionManager 据我所知,HibernateTransactionManager 不是 JTA 事务管理器。

PlatformTransactionManager implementation for a single Hibernate SessionFactory. Binds a Hibernate Session from the specified factory to the thread, potentially allowing for one thread-bound Session per factory. SessionFactoryUtils and HibernateTemplate are aware of thread-bound Sessions and participate in such transactions automatically. Using either of those or going through SessionFactory.getCurrentSession() is required for Hibernate access code that needs to support this transaction handling mechanism.

关于hibernate - Spring + Hibernate +JTA - HibernateTransactionManager 或 JTATransactionManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5936921/

相关文章:

java - Hibernate:在分离状态下更改对象后的持久性

java - 是否有任何关于事务性文件I/O、Java 语言的开源工具或框架?

java - Hibernate总是得到java.lang.IllegalArgumentException : Can not set java. lang.Long字段

java - Spring Boot Entitymanager 无法可靠地处理 'persist' 调用

java - 当没有要求时,Hibernate ManyToOne 总是级联

java - hibernate 分页限制 OneToMany 集合的大小?

java - 循环 View 路径错误,Spring MVC

java 。工件部署 Tomcat 8 期间出错

transactions - EJB3 - 在事务中使用 2 个持久性单元(异常 : Local transaction already has 1 non-XA Resource)

python - 在 Django 应用程序的 Celery 任务中使用事务会导致问题吗?