Boolean flag = transactionTemplate.execute(new TransactionCallback<Boolean>() {
@Override
public Boolean doInTransaction(TransactionStatus status) {
transReqDOMapperExt.updateByTransNo(updateTransReqDO);
repayPlanDOMapperExt.freezeByTransNo(freezeRepayPlanDO);
return Boolean.TRUE;
}
});
public interface TransactionCallback {
T doInTransaction(TransactionStatus var1);
}
在 transactionTemplate.execute中传入TransactionCallback接口的实现方法 doInTransaction ,业务处理方法放在doInTransaction 中,在execute方法中再执行doInTransaction 中的方法,在执行后进行提交或者回滚的操作
感觉这有点像代理模式的思维方式。使用回调TransactionCallback,使操作添加上了事务,这一招可以学一下