第一种:
1、在函数上增加注解
@Transactional(rollbackFor = Exception.class)
2、在函数体内,需要回滚的位置加上
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
第二种:
@Autowired
private PlatformTransactionManager transactionManager;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer testTransaction(){
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务,这样会比较安全些。
TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态
TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态
transactionManager.commit(status);
transactionManager.rollback(status);
}