我的项目使用 Spring 和 Hibernate 来管理数据库及其事务。我使用 HibernateTransactionManager 与 Hibernate 的 SessionFactory 一起管理事务。一切都很好。
我想尝试使用其他事务管理器,例如 Spring 的 DataSourceTransactionManager。实验失败了。然后我将 Spring 的 TransactionAwareDataSource 分层放在 C3P0 数据源之上,一切都恢复正常了。
正如我在 Spring Tx 文档中所读到的,简短的回答是让数据源 tx 感知。为什么我们需要让数据源事务感知,然后只有 tx 管理器可以管理它们,而 Hibernates SessionFactory 和 HibernateTransactionManager 不是这种情况?
谢谢