我有一个用@Transactional注释注释的方法。

问题是,代码所针对的数据源会改变!简而言之,是否有可能在应用程序运行时更改事务的数据源?

深入:
该应用程序允许用户选择要运行sql的数据库。他们可以在运行时更改数据库。我希望该应用程序在事务中运行所有sql-sql组始终针对同一数据源,因此这不是问题。

问题是,我不知道如何更改事务以使用其他数据源。各种各样的文章都建议使用JTATransactionManager,但是我们使用的是tomcat,所以没有骰子。

有没有简单的方法可以做到这一点,还是我们需要抛弃@Transactional注释并执行其他操作?

如果是这样,那“还有别的东西”是什么?

哦,数据库是db2,如果有什么用的话!

谢谢!

最佳答案

可能的解决方案之一


在spring config中配置所有可能的数据源

一种。 DB1的数据源1
b。用于DB2等的Datasource2。
在服务类中维护上述数据源的映射,并根据映射中的某些键从选定的数据源中创建spring的JDBCTemplate。

10-01 23:21
查看更多