当前位置: 首页 > 图灵资讯 > java面试题> javaspring面试题-@Transactional

javaspring面试题-@Transactional

来源:图灵教育
时间:2024-05-21 13:45:32
@EnableTransactionManagement @Transactional

注意事项:

①事务函数中不要处理耗时任务,会导致长期占有数据库连接。

②事务函数中不要处理无关业务,防止产生异常导致事务回滚。

事务传播属性

1) REQUIRED(默认属性) 如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。

1、MANDATORY 支持当前事务,如果当前没有事务,就抛出异常。

2、NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。

3、NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

4、REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。

5、SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。

7) NESTED (局部回滚) 支持当前事务,新增Savepoint点,与当前事务同步提交或回滚。 嵌套事务一个非常重要的概念就是内层事务依赖于外层事务。外层事务失败时,会回滚内层事务所做的动作。而内层事务操作失败并不会引起外层事务的回滚。