Mongo Transaction
不管是Mysql还是Oracle都支持事务,那么Mongo是否支持事务呢?
在项目中使用拉Mongo存储业务数据,但是由于业务数据需要保证一致性,MongoDB从4.0开始支持事务,而且4.0版本仅支持复制集,如果Mongo没有开启复制集是无法使用的
引入依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
配置说明
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.database=testTransaction
实现事务管理类,实现后可以用注解方式控制事务
@Configuration
public class MongoTransactionConfig {
@Bean
MongoTransactionManager transactionManager(MongoDbFactory factory){
return new MongoTransactionManager(factory);
}
}
@Override
@Transactional
public void addUser(UserEntity userEntity, WxStaff wxStaff) throws ApiException {
userDao.save(userEntity);
int = 1 / 0;
siteService.updateEmployAmount(siteEntity);
}
推荐几个比较好的帖子
上面几个帖子都有不同实现的方式
网友评论