1、当整个方法中每个子方法没报错时,整个方法执行完才提交事务,如果某个子方法有异常,spring将该事务标志为rollback only,在被标记后和将该异常抛出前,想去执行数据库的话是不允许的。
2、此时即使没有将异常抛出,但是如果继续去操作数据库的话,一样是会报Transaction rolled back because it has been marked as rollback-only的异常,倘若就是想将该异常记录到数据库该怎么办?重新启动一个独立事务去处理。
3、如果这个子方法没有将异常往上整个方法抛出或整个方法未往上抛出,那么该异常就不会触发事务进行回滚,事务就会在整个方法执行完后就会提交,这时就会造成Transaction rolled back because it has been marked as rollback-only的异常,如果我们往上抛了改异常,spring就会获取异常,并执行回滚。
————————————————
版权声明:本文为优快云博主「小风010766」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/u011196623/article/details/82826133