Наличие bean-компонента Менеджера транзакций Mongo изменяет поведение save () для репозиториев JPA - PullRequest
1 голос
/ 03 июня 2019

У меня есть вариант использования транзакций Монго. Для включения транзакций я следовал документу mongo В моем приложении также есть подключения к БД MySql.

После создания компонента транзакции Монго метод save () репозиториев JPA не сохраняет данные.

Метод сохранения репозиториев JPA работает хорошо, если я закомментирую bean-компонент MongoTransactionManager:

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 и, как часть @PostConstruct класса Application, попытаюсь заполнить таблицу.

Таблица заполняется, когда компонент транзакции Монго не существует. Но когда MongoTransactionBean существует, ничто не заполняется.

Я ожидаю, что MongoTransactions включен и правильное функционирование mysql save (). Может ли кто-нибудь помочь мне понять, как преодолеть эту проблему?

...