2016-11-22 201 views
1

多个数据库,我有一个需要访问两个数据库的应用程序。我正在尝试使用Spring事务来完成此操作。EnableTransactionManagement在春季

1)因为我有两个数据库和事务管理器需要一个数据源作为参数,我必须配置两个事务管理器,每个@Transactional指定正确的事务管理器使用?例如:@Transcational(“database1”),@Transactional(“database2”)。

2)由于@EnableTransactionManagement将寻找一个事务管理器,用于所有的交易,我不认为我可以使用此批注。是这样吗?我还可以利用交易用@Transactional(“数据库”)和没有@EnableTransactionManagement?

回答

1
+0

的文档没有说明是否应该与多个事务管理器使用@EnableTransactionManagement。 – tux

+1

@EnableTransactionManagement注释只能说春天与事务注解的方法必须由一个事务管理器包裹。它不适用于单个事务管理器。如果您使用单一跨国资源,那么您没有必要定义事务管理器名称。但是如果你有多个,你需要告诉spring它应该在Transactional注释本身上使用哪个Transaction Manager。 –