事务控制一般在一些比较重要的业务都需要考虑。
进入正题,关于事务Transactional 的要点以及使用方式:
@Transactional
1.需要将使用事务注解的方法设置为public;
2.如果没有在注解后做异常配置,只会对手动抛出的 throw new RuntimeException() 起作用;
3.若想对其余异常起作用,则需做类似配置 @Transactional(rollbackFor= Exception.class) ;
4.手动回滚,在使用注解后,在需要执行事务回滚的地方,TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
(使用手动回滚,就不需要抛异常了)
很多时候往往抛出异常进行回滚后无法return或者做一些其余的逻辑,那么这种情况使用手动事务回滚是非常不错的。