@Transactiona在多数据源下失效
在多数据源的情况下,如果transactionManager进行了分开配置,比如这里针对三个数据源配置了三个transactionManager
@Bean("formTransactionManager")
public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(Objects.requireNonNull(entityManagerFactory(builder).getObject()));
}
@Bean("fileTransactionManager")
public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(Objects.requireNonNull(entityManagerFactory(builder).getObject()));
}
@Primary
@Bean("userTransactionManager")
public PlatformTransactionManager transactionManager(EntityManagerFactoryBuilder builder) {
return new JpaTransactionManager(Objects.requireNonNull(entityManagerFactory(builder).getObject()));
}
那么在使用@Transactional的时候需要指定transactionManager
@Transactional("formTransactionManager")