Mongo Transactions Manager Bean的存在改变了JPA存储库的save()行为

时间:2019-06-03 09:53:02

标签: java spring-boot spring-data-jpa spring-data-mongodb spring-transactions

我有一个使用Mongo交易的用例。为了启用交易,我遵循了mongo transaction document 在我的应用程序中,我也具有MySql DB连接。

在创建mongo事务bean之后,JPA存储库save()方法不会持久存储数据。

如果我注释掉MongoTransactionManager bean,则JPA存储库保存方法效果很好:

public class MongoTransactionConfiguration  extends AbstractMongoConfiguration {

    @Autowired
    private MongoProperties props;

/*    @Bean
    MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
        return new MongoTransactionManager(dbFactory);
    }*/

    @Override
    public MongoClient mongoClient() {
        return new MongoClient(new MongoClientURI(props.getUri()));
    }

    @Override
    protected String getDatabaseName() {
        return props.getDatabase();
    }
}

示例代码可在github中找到 在此示例中,我连接到本地主机mysql,并且作为Application类的@PostConstruct的一部分,将尝试填充表。

当mongo事务bean不存在时,将填充该表。 但是当MongoTransactionBean存在时,不会填充任何东西。

我希望启用MongoTransactions并正确运行mysql save()。有人可以帮我弄清楚如何解决这个问题吗?

0 个答案:

没有答案