首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring声明活动事务管理器

Spring声明活动事务管理器
EN

Stack Overflow用户
提问于 2011-08-03 05:34:46
回答 1查看 1.4K关注 0票数 1

在Spring声明性事务管理器中::method:

代码语言:javascript
复制
<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:建议中,不回滚和回滚是什么关系?

EN

回答 1

Stack Overflow用户

发布于 2011-08-03 07:17:41

总之

它能做你想做的。

最具体的(否)--回滚-匹配concreate抛出异常的规则是胜诉。

这意味着,如果您有异常层次结构和回滚规则。

  • A (扩展异常) <--回滚
  • B扩展A
  • C扩展B <--无回滚
  • D扩展C

<代码>H 19E扩展D<-回滚<代码>H 210<代码>H 111F扩展E<代码>H 212<代码>F 213

然后抛出的类A、B、E和F的异常将回滚,而C和D则不会。

(它是用RuleBasedTransactionAttribute.rollBackOn(Throwable ex)实现的)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6922090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档