0
hi下面是我在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的”豆被定义
@Transactional(value = "jpaTXMgr")
public Staff find(String userId, String password) {
Staff staff = staffRepository.findOne(userId);
return staff;
}
@EnableTransactionManagement在已经应用我弹簧配置类。请让我知道缺少什么
你可以发布你的完整配置fir更好的理解。另外,如果你使用的是spring引导和spring数据,那么你不需要定义事务管理器,因为spring引导会为你做。另一个问题,为什么你需要两个tx经理? – Amardeep
你很可能不应该有两个事务管理器。你当然应该阅读EnableTransactionManagement的javadoc,这正是它所期望的:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/transaction/annotation/EnableTransactionManagement.html –