17.下面选项对"@Transactional"描述错误的是() ☆ 【单选】 A.此注解可以使用在类上 B.此注解可以使用在方法上 C.此注解默认情况下可以对RuntimeException异常回滚事务 D.此注解默认情况下可以对Exception异常回滚事务
时间: 2023-06-12 22:04:26 浏览: 54
D. 此注解默认情况下可以对Exception异常回滚事务。@Transactional 默认情况下只对 RuntimeException 异常进行事务回滚,如果需要对 checked 异常进行事务回滚,需要在 @Transactional 注解中使用 `rollbackFor` 或 `noRollbackFor` 属性指定需要回滚的异常类型。此注解既可以使用在类上,也可以使用在方法上。
相关问题
@Transactional(isolation = Isolation.SERIALIZABLE)和@Transactional区别
@Transactional(isolation = Isolation.SERIALIZABLE)是Spring框架中的一个注解,用于标记一个方法或类需要在事务中执行。其中,isolation参数指定了事务的隔离级别为SERIALIZABLE,表示该事务具有最高的隔离级别,要求事务串行执行,避免了脏读、不可重复读和幻读等并发问题。
而@Transactional注解则是用于标记一个方法或类需要在事务中执行,默认情况下,事务的隔离级别为数据库的默认级别。通过@Transactional注解,可以将一系列操作作为一个原子性的操作单元,要么全部成功提交,要么全部失败回滚。
总结一下两者的区别:
1. @Transactional(isolation = Isolation.SERIALIZABLE)是对事务隔离级别进行设置,而@Transactional是用于标记方法或类需要在事务中执行。
2. @Transactional(isolation = Isolation.SERIALIZABLE)设置的隔离级别为SERIALIZABLE,而@Transactional使用数据库的默认隔离级别。
3. @Transactional(isolation = Isolation.SERIALIZABLE)可以避免并发问题,保证事务的串行执行,而@Transactional只是将一系列操作作为一个原子性的操作单元。
19.下面选项对"@Transactional"描述正确的是() ☆ 【不定项选择】 A.@Transactional(propagation = "设置事务传播行为") B.@Transactional(rollbackFor = "指定回滚类型的异常") C.@Transactional(noRollbackFor = "指定回滚类型的异常") D.@Transactional(value= "设置事务传播行为")
A、B、C、D 都是正确的。
A. @Transactional(propagation = "设置事务传播行为"):用来设置事务的传播行为,常用的传播行为有:REQUIRED(默认值)、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。
B. @Transactional(rollbackFor = "指定回滚类型的异常"):用来设置事务在遇到指定类型的异常时回滚,可以指定多个异常类型。
C. @Transactional(noRollbackFor = "指定不回滚类型的异常"):用来设置事务在遇到指定类型的异常时不回滚,可以指定多个异常类型。
D. @Transactional(value= "设置事务传播行为"):用来设置事务的传播行为,与 A 选项作用相同,只是写法不同。