注意事项:
①事务函数中不要处理耗时任务,会导致长期占有数据库连接。
②事务函数中不要处理无关业务,防止产生异常导致事务回滚。
事务传播属性
1) REQUIRED(默认属性) 如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
1、MANDATORY 支持当前事务,如果当前没有事务,就抛出异常。
2、NEVER 以非事务方式执行,如果当前存在事务,则抛出异常。
3、NOT_SUPPORTED 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
4、REQUIRES_NEW 新建事务,如果当前存在事务,把当前事务挂起。
5、SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式执行。
7) NESTED (局部回滚) 支持当前事务,新增Savepoint点,与当前事务同步提交或回滚。 嵌套事务一个非常重要的概念就是内层事务依赖于外层事务。外层事务失败时,会回滚内层事务所做的动作。而内层事务操作失败并不会引起外层事务的回滚。