【发布时间】:2019-11-06 02:47:51
【问题描述】:
我需要使用 spring mongotemplate 事务。 除非满足条件,否则将不得不手动回滚事务。 我得到了例外 com.mongodb.MongoClientException:此客户端连接到的 MongoDB 集群不支持会话。 如何使用 Spring mongodb 事务。 请帮帮我。
@Autowired
MongoTransactionManager mongoTransactionManager;
@Autowired
TestDao testDao;
@Transactional
public void testMethod() {
int temp = 0;
try {
testDao.saveDatainTempTable();
testDao.saveMongoData();
if (temp == 0) {
System.out.println("=========================");
TransactionInterceptor.currentTransactionStatus().setRollbackOnly();
mongoTransactionManager.rollback(TransactionInterceptor.currentTransactionStatus());
}
} catch (Exception e) {
}
}
@Configuration
public class MongoTransactionConfig extends AbstractMongoConfiguration {
@Bean
MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
return new MongoTransactionManager(dbFactory);
}
@Override
protected String getDatabaseName() {
return "test";
}
@Override
public MongoClient mongoClient() {
return new MongoClient("127.0.0.1", 27017);
}
}
【问题讨论】:
-
考虑将服务器端 Mongo 客户端更新为支持会话的版本。
-
我正在使用仅支持会话的更新版本 mongo v4.0.9。但我仍然遇到异常。我不明白我哪里出错了
-
我在使用 monogdb server 4.0.9 时遇到了类似的问题
-
@naaz 如果您找到任何解决方案,请告诉我
-
有人告诉我,在我的情况下它不适用于单个实例
标签: mongodb spring-boot transactions mongotemplate