@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)
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论