业务需要,有可能需要根据状态码判断回调的参数来判断是否成功,就要手动throw异常,不过考虑到事务问题,先记录一下.原因不明.
throw new RuntimeException(“xxx”); 事务回滚
throw new Exception(“xxx”); 事务没有回滚
在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。
在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚
参考文章:
https://blog.csdn.net/houjx3/article/details/84656963
https://blog.csdn.net/java_zys/article/details/78122706
https://www.cnblogs.com/clwydjgs/p/9317849.html