Transaction marked as rollback-only异常

一、当整个方法中每一个子方法没报错时,整个方法执行完才提交事务,若是某个子方法有异常,spring将该事务标志为rollback only,在被标记后和将该异常抛出前,想去执行数据库的话是不容许的spring

二、此时即便没有将异常抛出,可是若是继续去操做数据库的话,同样是会报Transaction rolled back because it has been marked as rollback-only的异常,假若就是想将该异常记录到数据库该怎么办?从新启动一个独立事务去处理。数据库

三、若是这个子方法没有将异常往上整个方法抛出或整个方法未往上抛出,那么该异常就不会触发事务进行回滚,事务就会在整个方法执行完后就会提交,这时就会形成Transaction rolled back because it has been marked as rollback-only的异常,若是咱们往上抛了改异常,spring就会获取异常,并执行回滚。spa

相关文章
相关标签/搜索