java – Spring Transaction:rollbackfor和norollbackfor都定义
这是我必须维护的应用程序中遇到的问题:
我有一个带注释的第一个类@Transactional(rollbackFor = CustomExceptionA.class) 当然,当我执行代码时会引发异常,它既不是CustomExceptionA类型也不是CustomExceptionB类型,也不是它们的子类. 所以问题很简单: 谢谢你的帮助和时间. 解决方法
默认情况下,Spring Framework的事务基础结构代码仅在运行时未经检查的异常情况下标记事务以进行回滚;也就是说,抛出的异常是RuntimeException的实例或子类. (错误也将 – 默认情况下 – 导致回滚.)从事务方法抛出的已检查异常不会导致事务回滚.
为什么?这非常有意义:已检查的异常对于处理或丢弃是强制性的,因此如果您将已检查的异常从事务方法中抛出,那么框架会假设您知道自己在做什么.如果未解决的异常可能是错误或异常处理缺陷,则回滚事务以避免数据损坏. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |