参考:
(1)Spring事务中,一个@Transaction哪里来这么多坑? - 简书
我:
(1)在一个事务中,对一条记录进行添加删除修改后,事务还未提交,你又重新查询了一遍该条记录,导致事务失效。
@Service
public class DemoService {
@Transactional
public void saveA(A a) {
this.add(a);
// 事务还未提交,就进行了脏读
A exist = this.selectById(a);
if(null == exist){
throw new RuntimeException("新增失败")
}
}
}
(2)你在同个service类的另一个方法transactionA()中这样调用了事务方法transactionB():
@Service
public class DemoService {
@Transactional
public void saveA() {
// 问题一:this直接使用的是当前类,而不是spring注入的对象,导致事务失效
this.saveB();
}
// 问题二:在多事