spring中的@Transaction回滚

@Transaction注解失效不会滚的三种情况:
1.方法不是public关键字
2.标注注解的方法是在其它方法的内部被调用
3.exception被try-catch了

如何进行事务回滚?
1.手动进行事务回滚
    // 手动硬编码开启spring事务管理
    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
    e.printStackTrace();
2.使用@Transactional 注解,并在try-catch中throw new RuntimeException();

3.可以将 @Transactional配置为 @Transactional(rollbackFor = Exception.class)
    @Transactional不做任何配置 默认是对抛出的unchecked异常回滚,checked异常不会回滚,为了让所有异常都会让事务启动可以将 @Transactional配置为 @Transactional(rollbackFor = Exception.class)

你可能感兴趣的:(javaWeb)