在实际应用中,我们需要做一系列的操作,比如当我们增加明细数据需要对表头更新合计值;也就是涉及多个表的操作时需要通过事务进行处理;那么事务处理方式有两种方式:一种写带事务的存储过程,另一种通过Spring 自身事务支持;在这里我就解释后者有方式;
第一步:
在入口处增加 @EnableTransactionManagement 注解
package com.cm.aps;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@SpringBootApplication
@EnableTransactionManagement
public class ApsApplication {
public static void main(String[] args) {
SpringApplication.run(ApsApplication.class, args);
}
}
第二步就是在Service的类里写处理过程;注意事项请看注释
@Override
@Transactional(rollbackFor = Exception.class) //这里回滚进行定义
public int update(Prdtv prdtv) throws RuntimeException{
//注意在这里处理业务时,不要使用Try ...异常捕获,否则不回滚
return prdtvMapper.update(prdtv);
}
结语:虽然现在还不知道它是通过一个什么样的机制处理事务的;但也是解决问题的一种方式。
当然通过存储处理也是可以的,需要在存储里加下事务,而不是简单的存储过程。