1 增加配置类

package com.mongo.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.MongoTransactionManager;

/**
 * 配置mongodb 事务
 * 增加此类 此外需要事务的方法上增加 @Transactional(rollbackFor = Exception.class) 开启事务
 */
@Configuration
public class MongoTransactionConfiguration {

    @Bean
    MongoTransactionManager mongoTransactionManager(MongoDbFactory factory) {
        return new MongoTransactionManager(factory);
    }
}

2 在方法上增加注解@Transactional 即可

import com.mongo.demo.model.Comment;
import com.mongo.demo.util.MongoUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set;

@Service
public class DataDaoImpl implements DataDao {
   @Autowired
    private MongoTemplate mongoTemplate;

    
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void transactionalTest(Comment comment) {
        save(comment);
        int flag=1/0;
        deleteById(comment.getId());
    }

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐