Spring注解事务
String txName = TransactionSynchronizationManager.getCurrentTransactionName();
获取当前事务名
事务需要注意方法是哪个事务在管理,哪个方法抛出异常对应的事务才会回滚,可以通过打印出事务名称来排查事务不生效的场景
例如下面的事务的save
方法的事务管理
@Slf4j
@Service
public class TransactionServiceImpl implements TransactionService {
@Autowired
private BasecodeRepository basecodeRepository;
@Autowired
private ProjectService projectService;
@Override
@Transactional(propagation = Propagation.REQUIRED)
public void save() {
TransactionService transactionService = SpringBeanContextHolder.getBean(TransactionService.class);
saveProject();
try {
saveWithTransactionPrivate();
} catch (Exception e){
log.info("save error",e);
}
// 注意这一行
int i = 2/0;
}