建议使用声明式事务@Transactional(rollbackFor = Exception.class)粒度不够,拆分方法
import org.springframework.transaction.support.TransactionTemplate;
@Autowired
private TransactionTemplate trans;
/**
* 编程式事务
*/
public void transfer() {
//无返回值
trans.executeWithoutResult((status) ->{
boolean save = this.save(t);
if(!save) {
status.setRollbackOnly();
}
});
//有返回值
trans.execute((status) ->{
boolean save = this.save(t);
if(!save) {
status.setRollbackOnly();
}
return new Object();
});
}