Junit单元测试关于@Transactional注解引起的事务回滚问题
作者:依然耀眼
这篇文章主要介绍了Junit单元测试关于@Transactional注解引起的事务回滚问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
@Transactional注解引起的事务回滚问题
Junit单元测试时,在测试方法中打事务注解@Transactional,默认会按照@Rollback(true)来进行处理,即使在没加注解@Rollback,也会对事务回滚
@Test @Transactional public void test01(){ }
Junit单元测试时,测试方法上加注解@Transactional
事务不回滚的解决办法
方法1:
测试方法上在注解@Transactional的基础上,加注解@Rollback(value = false)
@Test @Transactional @Rollback(value = false) public void test01(){ }
方法2:
测试方法上在注解@Transactional的基础上,加注解@Commit
@Test @Transactional @Commit public void test01(){ }
单元测试@TransActional注解注意点
单元测试@TransActional注解会自动回滚
它会自动带有@Rollback(true)
如果需要修改数据库就不要使用@TransActional注解或者添加@Rollback(flase)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。