博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring事务之@Transactional
阅读量:4916 次
发布时间:2019-06-11

本文共 1669 字,大约阅读时间需要 5 分钟。

参考源API : 
org.springframework.transaction.annotation.Transactional:Annotation Types:Transactional

学习代码片段:

@Override	@Transactional(propagation=Propagation.REQUIRED,rollbackFor = Exception.class)	public AddressDTO addDeliveryAddr(AddressDTO dto) throws GdApiException{	    //@todo ....	}

参考API 简单的翻一下: 原文:

Describes transaction attributes on a method or class. This annotation type is generally directly comparable to Spring's RuleBasedTransactionAttribute class, and in fact AnnotationTransactionAttributeSource will directly convert the data to the latter class, so that Spring's transaction support code does not have to know about annotations. If no rules are relevant to the exception, it will be treated like DefaultTransactionAttribute (rolling back on RuntimeException and Error but not on checked exceptions).

译文:

transaction属性修饰的是一个类或者方法,这个注解通常直接媲美RuleBasedTransactionAttribute类。实际上,Spring的事物支持代码不需要知道注解,因为 AnnotationTransactionAttributeSource 可以直接把数据转到后面的Class。 如果没有规定相关的异常,它类似于DefaultTransactionAttribute

propagation 简单的注释下:
各种属性的意义:    REQUIRED:业务方法需要在一个容器里运行。如果方法运行时,已经处在一个事务中,那么加入到这个事务,否则自己新建一个新的事务。    NOT_SUPPORTED:声明方法不需要事务。如果方法没有关联到一个事务,容器不会为他开启事务,如果方法在一个事务中被调用,该事务会被挂起,调用结束后,原先的事务会恢复执行。    REQUIRESNEW:不管是否存在事务,该方法总汇为自己发起一个新的事务。如果方法已经运行在一个事务中,则原有事务挂起,新的事务被创建。    MANDATORY:该方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果在没有事务的环境下被调用,容器抛出例外。    SUPPORTS:该方法在某个事务范围内被调用,则方法成为该事务的一部分。如果方法在该事务范围外被调用,该方法就在没有事务的环境下执行。    NEVER:该方法绝对不能在事务范围内执行。如果在就抛例外。只有该方法没有关联到任何事务,才正常执行。 NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中。如果没有活动事务,则按REQUIRED属性执行。它使用了一个单独的事务,这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事务造成影响。它只对DataSourceTransactionManager事务管理器起效。

转载于:https://www.cnblogs.com/Profound/p/8762749.html

你可能感兴趣的文章
[转]第一章 Windows Shell是什么 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987862】...
查看>>
iOS获取设备UUID和IDFA
查看>>
模糊查询
查看>>
linux 出现:-bash-3.2$提示符
查看>>
jsp电子商务 购物车实现之二 登录和分页篇
查看>>
科普:搜索引擎的基本工作原理
查看>>
Docker Compose 原理
查看>>
mongodb index 的background 及集群的索引建立
查看>>
判断两个控件在同一个Window上是否有重叠
查看>>
Android+Jquery Mobile学习系列(3)-创建Android项目
查看>>
android:inputType参数类型说明
查看>>
android 抽屉式滑动demo
查看>>
Swift语言Storyboard教程:第一部分
查看>>
unload事件Ajax提交问题
查看>>
代码工程flex不显示GIF图片问题
查看>>
Kotlin 初窥门径[2]:流程控制
查看>>
Android利用Socket与硬件通信之智能家居APP
查看>>
Idea中提交SVN或git时,忽略某些文件不提交
查看>>
20135236、20135206第一次试验报告
查看>>
Java的“Goto”与标签
查看>>