Spring-test事务自动回滚 及@Transactional 详解

本文详细介绍了Spring-test中的事务自动回滚机制,解释了默认的回滚策略以及如何自定义不回滚。同时,深入探讨了@Transactional注解的使用,包括其在接口和方法上的应用、事务的隔离级别、传播行为以及如何处理异常。还讨论了声明式事务管理的实现原理,强调了在多线程和嵌套调用中的注意事项。
摘要由CSDN通过智能技术生成

Spring-test事务自动回滚

测试时使用addUser()方法向数据库插入一条记录,结果发现通过单元测试了,但是并没有向数据库插入一条记录。一看日志,发现Spring-test对事务进行了回滚。
为了使测试数据不对数据库造成污染,在使用Spring-test进行的单元测试的时候,默认会对事务进行回滚,即@Rollback 默认是true,如果想要测试数据不回滚,可设置@Rollback(value = false) 。

@Test
@Transactional
@Rollback(value = false)
public void consumerTest(){
   
    Consumer consumer = new Consumer();
    consumer.setUsername("栗子");
    consumer.setPassword("!@#");
    consumer.setSex(new Byte("0"));
    consumer.setPhoneNum("12222544441");
    consumer.setEmail("11111111@qq.com");
    consumer.setBirth(new Date());
    consumer.setIntroduction("");
    consumer.setLocation("");
    cons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值