为什么使用编程式事务
因为使用声明式事务会有很多失效的场景,比如返回类型和rollback的类型不一致,或者是在一个方法中调用了另一个使用声明式事务的方法,再或者使用了try,catch,都会导致声明式事务失效,这样就会出现很多问题,所以spring官方建议我们使用编程式事务,可直接使用transactionTemplate
如何使用
直接引入transactionTemplate实例
boolean a=transactionTemplate.execute(state->{
//多个新增删除的业务代码
return Boolean.TRUE;
});
transactionTemplate的execute执行原理
先打开事务
调用doInTransaction方法
提交事务
有try/catch执行,有异常回滚