[英]Multiple transaction manager
您好,下面是我在spring配置类中创建的transactionManager。
@Bean(name = "dataSourceTXMgr")
public PlatformTransactionManager getTransactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "jpaTXMgr")
public JpaTransactionManager transactionManager(LocalContainerEntityManagerFactoryBean factory) throws ClassNotFoundException
{
System.out.println("JPA");
return new JpaTransactionManager(factory.getObject());
}
但是,在调用以下方法时,出现了一个异常org.springframework.beans.factory.NoSuchBeanDefinitionException:未定义名为'transactionManager'的bean
@Transactional(value = "jpaTXMgr")
public Staff find(String userId, String password) {
Staff staff = staffRepository.findOne(userId);
return staff;
}
@EnableTransactionManagement已经在我的spring配置类中应用了。 请让我知道缺少了什么
假设您使用的是“ EnableJpaRepositories”注释,请使用它设置要使用的事务管理器。 有关详细信息,请参阅其文档: https : //docs.spring.io/spring-data/data-jpa/docs/current/api/org/springframework/data/jpa/repository/config/EnableJpaRepositories.html#transactionManagerRef--
发生的事情是:当您在“ @Transactional”注释中指定自己的事务管理器时,存储库会附带其自己的隐式注释。 因此,它基本上在两个事务内部运行,其中一个失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.