首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring中的@Transactional(rollbackFor = Exception.class)属性详解

一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法; ?...声明式事务管理也有两种常用的方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解。显然基于注解的方式更简单易用,更清爽。...在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。...在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚...@Transactional注解的全部属性详解 @Transactional属性 属性 类型 描述 value String 可选的限定描述符,指定使用的事务管理器 propagation enum:

6.4K21
您找到你想要的搜索结果了吗?
是的
没有找到

spring的@Transactional(rollbackFor=Exception.class)的使用

1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class) 2 让unchecked例外不回滚: @Transactional...(notRollbackFor=RunTimeException.class) 3 不需要事务管理的(只查询的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED...注意:     Spring团队的建议是你在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。...你当然可以在接口上使用 @Transactional 注解,但是这将只能当你设置了基于接口的代理时它才生效。...因此,请接受Spring团队的建议并且在具体的类上使用 @Transactional 注解。     @Transactional 注解标识的方法,处理过程尽量的简单。

1.2K10

@Transactional注解加不加 rollbackFor = Exception.class 的区别?

都可以回滚的 7、这个时候我们去看一下数据库的值到底有没有修改成功 很显然数据是被回滚了 并没有修改成0 1、下面我们在试试@Transactional不能过滚的异常 代码如下 我们直接先用try...catch来捕获异常 然后在catch里面自定义抛出Exception异常 @Override @Transactional public Ret test() throws Exception {     ...只能回滚RuntimeException和RuntimeException下面的子类抛出的异常 不能回滚Exception异常 如果需要支持回滚Exception异常请用@Transactional(rollbackFor...= Exception.class) 这里如果是增删改的时候我建议大家都使用@Transactional(rollbackFor = Exception.class) 补充一下@Transactional...(rollbackFor = Exception.class)一些失效的场景: 1、不是用public修饰 2、try catch捕获了异常(没有在catch里面手动抛出异常) 3、没有加@Service

37210

Transactional注解指定rollbackFor或在方法中显示的rollback

1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class) 2 让unchecked例外不回滚: @Transactional...(notRollbackFor=RunTimeException.class) 3 不需要事务管理的(只查询的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED...注意: Spring团队的建议是你在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。...你当然可以在接口上使用 @Transactional 注解,但是这将只能当你设置了基于接口的代理时它才生效。...因此,请接受Spring团队的建议并且在具体的类上使用 @Transactional 注解。 @Transactional 注解标识的方法,处理过程尽量的简单。

3.7K90

SpingBoot:事务@Transactional注解不生效场景简介及事务回滚

2.用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义 3.在项目中,@Transactional(rollbackFor=Exception.class...4.在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class...@Transactional 注解属性 rollbackFor 设置错误 rollbackFor 可以指定能够触发事务回滚的异常类型。...@Transactional(rollbackFor = Exception.class) 在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException...的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。

25710
领券