@Transactional

  修饰范围:类上或方法上

  作用:给类中方法加入事务,当类上和方法上同时存在该注解时方法优先

  注解属性:

    propagation :控制事务传播属性

        属性值:

            (默认)Required : 需要事务,如果外层没有事务,则开启事务,若果外层有事务则融入当前事务。

            Supports:支持事务,如果外层存在事务则融入当前事务,如果外层不存在事务也不会开新的事务

            Mandatory:强制事务,必须存在事务,没有事务则报错

            Requires_new:每次都会开启一个新的事务,如果外层存在事务,则外层事务挂起。自己新开启一个事务运行,运行完毕后,外层事务恢复

            Not_Supportes:不支持事务,如果外层存在事务,外层事务挂起(暂停),自己已非事务的方式运行,运行完成后,恢复外层事务

            Never:不能有事务,存在则报错

            Nested:嵌套事务,数据库不支持

 

    isolation : 控制事务隔离级别

         属性值: 

             (默认)default:采用数据库自身的隔离级别

             Read_Uncommitted:读未提交:一个事务读取到另一个事务没有提交的数据(脏读)

             Read_Committed:读已提交:一个事务等另一个事务提交以后才能读数据,有效地避免了脏读现象。(Oracle默认使用)

             Repeatable_read:可重复读:一个事务中A多次读取同一条数据(出现幻影读),即使事务B有修改操作,那么事务A读取的数据始终是一致的。(MySQL默认使用)

             Serializable:序列化:事务的最高隔离级别,事务已串行的方式执行。解决幻影读现象

 

    timeout : 设置超时时间,单位:毫秒

          属性值:

             -1:代表永不超时

             任意值 :是一个大于0的值,代表当前事务执行过程中超时就会报错

 

    rollbackFor : 设置遇见什么异常进行回滚,设置java.lang.RuntimeException以及子类异常

          如:rollbackFor = NullPointerException.class  

 

    noRollbackFor : 设置遇见什么异常不进行回滚,设置java.lang.RuntimeException以及子类异常

          如:noRollbackFor = IndexOutOfBoundsException.class

 

    readOnly : 设置事务是否只读(Oracle不支持这个) 

          属性值: 

             true:本次事务只读,不能置信增删改

             false:本次事务可读可写    

      

原文地址:http://www.cnblogs.com/Life-QX/p/16849720.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性