@Resource
private PlatformTransactionManager platformTransactionManager;
@Resource
private TransactionDefinition transactionDefinition;
TransactionStatus transaction = platformTransactionManager.getTransaction(transactionDefinition);
try {
this.saveBatch(comboParams);
this.update(Wrappers.<ComboParam>lambdaUpdate().set(ComboParam::getResParamId,4).eq(ComboParam::getComboEntranceId,4));
platformTransactionManager.commit(transaction);
} catch (Exception e) {
platformTransactionManager.rollback(transaction);
}
完全符合我们之前的那份代码片段,有事务,也有锁
我们的逻辑
代码运行的逻辑
你细品,这个描述是不是迷惑性就没有那么强了,甚至你还会恍然大悟:这不是常识吗?
Transactional失效场景介绍失效场景介绍
当然这里也有其他的解决方案,但是我推荐还是手动开启事务,手动提交事务, 再者就是重新创建一个类专门加锁,另一个类专门控制事务,就可以用Transactional 注解