设置Spring Boot 单元测试自动提交事务(不回滚)

本文介绍了在Spring Boot单元测试中遇到的事务自动回滚问题及其解决方案。通过在测试方法上添加@Rollback(false)或@Commit注解,可以防止事务在测试结束后被回滚,从而实现事务的直接提交。
摘要由CSDN通过智能技术生成

在编写单元测试时,如下代码发现数据库更改没有成功

@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.NONE)
class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    @Transactional
    void updateUser(){
        User user = new User();
        user.setId("123");
        user.setName("刘德华");
        user.setCreateTime(LocalDateTime.now());

        userMapper.updateById(user);
        System.out.println(user);
    }

发现数据库中的 id 为“123” 的记录并没有更改成功,打印控制台打印mybatis 日志的时候发现也有,

好在application.properties 中加入了这一行

logging.level.org.springframework.jdbc.datasource.DataSourceTransactionManager=debug

发现控制台有一行输出    transaction.TransactionContext   : Rolled back transaction for test: 原来单元测试的代码会自动回滚事务,但是我想直接提交,查到可以直接在方法上加上 @

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值