在Spring声明性事务管理器中::method:
<tx:method name="handle*" propagation="REQUIRED" no-rollback-for="java.lang.RuntimeException" rollback-for="java.lang.Exception" read-only="false"/>春天
回滚文档是:将触发回滚的异常;逗号分隔。例如,“com.foo.MyBusinessException,ServletException”
非回滚文档是:不会触发回滚的异常;逗号分隔。例如,“com.foo.MyBusinessException,ServletException”
我希望事务管理器在捕获java.lang.Exception时回滚,但java.lang.RuntimeException将导致提交。
这个配置适合我的请求吗?在tx:方法tx:建议中,不回滚和回滚是什么关系?
发布于 2011-08-03 07:17:41
总之
它能做你想做的。
最具体的(否)--回滚-匹配concreate抛出异常的规则是胜诉。
这意味着,如果您有异常层次结构和回滚规则。
<代码>H 19E扩展D<-回滚<代码>H 210<代码>H 111F扩展E<代码>H 212<代码>F 213
然后抛出的类A、B、E和F的异常将回滚,而C和D则不会。
(它是用RuleBasedTransactionAttribute.rollBackOn(Throwable ex)实现的)
https://stackoverflow.com/questions/6922090
复制相似问题