I got a requirement to work with spring mongotemplate transactions. unless criteria meets,will have to roll back the transaction manually. I am getting exception like com.mongodb.MongoClientException: Sessions are not supported by the MongoDB cluster to which this client is connected. How to work with Spring mongodb transactions. Please help me out.
@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);
}
}