spring对于事务异常的处理
- unchecked 运行期Exception spring默认会进行事务回滚 比如:RuntimeException
- checked 用户Exception spring默认不会进行事务回滚 比如:Exception
如何改变spring的这种默认事务行为?可以通过在方法上
添加@Transactional(noRollbackFor=RuntimeException.class)让spring对于RuntimeException不回滚事务
添加@Transactional(RollbackFor=Exception.class)让spring对于Exception进行事务的回滚
在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚