@Transactional面试题
时间: 2023-10-21 09:34:11 浏览: 82
1. 什么是@Transactional注解?它的作用是什么?
@Transactional是Spring框架中的注解,用于声明事务的属性。它的作用是将带有该注解的方法划分为一个事务,保证这个方法的执行是一个原子操作,即要么全部执行成功,要么全部执行失败。
2. @Transactional注解的使用方式有哪些?
@Transactional注解可以用在类上或方法上,用在类上时,表示该类的所有方法都将使用该类的事务属性,用在方法上时,表示该方法将使用自己的事务属性。
3. 什么是事务的隔离级别?
事务的隔离级别指的是多个事务之间的隔离程度。常见的事务隔离级别包括:READ_UNCOMMITTED(读未提交)、READ_COMMITTED(读已提交)、REPEATABLE_READ(可重复读)、SERIALIZABLE(串行化)。
4. 什么是事务的传播行为?
事务的传播行为指的是多个事务之间的相互影响关系。常见的事务传播行为包括:REQUIRED(默认值,表示如果当前没有事务,则新建一个事务;如果当前有事务,则加入该事务)、SUPPORTS(表示如果当前有事务,则加入该事务;如果当前没有事务,则以非事务方式运行)、MANDATORY(表示当前必须存在事务,否则抛出异常)、REQUIRES_NEW(表示当前必须新建一个事务,并挂起当前事务)、NOT_SUPPORTED(表示当前必须以非事务方式运行,如果当前有事务,则挂起该事务)、NEVER(表示当前必须以非事务方式运行,如果当前有事务,则抛出异常)、NESTED(表示当前必须新建一个嵌套事务,如果当前没有事务,则新建一个事务)。
5. @Transactional注解的默认配置是什么?
@Transactional注解的默认配置是使用REQUIRED传播行为、使用数据库默认的事务隔离级别、抛出RuntimeException和Error类型的异常时回滚事务、其他类型的异常不回滚事务。
阅读全文