概述
2019独角兽企业重金招聘Python工程师标准>>>
属性:propagation
含义:REQUIRED:方法A调用时没有事务新建一个事务,当在方法A调用另外一个方法B的
时候,方法B将使用相同的事务。如果方法B发生异常需要数据回滚的时候,整个事务数据
回滚。
REQUIRES_NEW:对于方法A和B,在方法调用的时候无论是否有事务都开启一个新的 的作用是将
事务。如果方法B有异常不会导致方法A的数据回滚。
NESTED:和REQUIRES_NEW类似,仅支持JDBC,不支持JPA和Hibernate
SUPPORTS:方法调用时有事务就用事务,没有就不用。
NOT_SUPPORTED:强制方法不在事务中执行,若有事务,在方法调用到结束阶段事务
将会被挂起
NEVER:强制方法不在事务中执行,若有事务则抛出异常。
MANDATORY:强制方法在事务中执行,若无事务则抛出异常。
默认值:REQUIRED
属性:isolation
含义:READ_UNCOMMITTED:对于A事务里修改了一条记录但没有提交事务,在B事务可以读取到
修改后的记录,会导致脏读、不可重复读及幻读。
READ_COMMITTED:只有当在A事务里修改了一条记录且提交事务之后,B事务才可以读取到
提交后的记录。阻止脏读,但可能会导致不可重复读和幻读。
REPEATABLE_READ:不仅能实现READ_COMMITTED的功能,而且还能阻当A事务读取了一条
记录,B事务将不允许修改这条记录。阻止脏读和不可重复读,但可出现幻读。
SERIALIZABLE:此级别下事务是顺序执行的,可以避免上述级别的缺陷,但开销较大
DEFAULT:使用当前数据库的默认隔离界级别,如Oracle、SQL Server是READ_COMMITTED。
Mysql是REPEATABLE_READ.
默认值:DEFAULT
属性:timeout
含义:指定事务过期时间,默认为当前数据库的事务过期时间
默认值:TIMEOUT_DEFAULT
属性:readOnly
含义:指定当前事务是否只读事务
默认值:false
属性:rollbackFor
含义:指定哪个或者哪些异常可以引起事务回滚
默认值:Throwable的子类
属性:noRollbackFor
含义:指定哪个或者哪些异常不可以引起事务回滚
默认值:Throwable的子类
用法:@Transactional注解可以在类和方法上使用,当注解在类上则所有public方法都是开启事务的,
当注解在类和方法同时使用了@Transactional注解则会重载方法级别的注解。
转载于:https://my.oschina.net/u/3378039/blog/2986693
最后
以上就是幸福烤鸡为你收集整理的spring注解事务行为之@Transactional的全部内容,希望文章能够帮你解决spring注解事务行为之@Transactional所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复