繁体   English   中英

多个交易经理

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM