spring的事务隔离机制
- REQUIRED
- 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
- SUPPORTS
- 支持当前事务,如果当前没有事务,就以非事务方式执行。
- MANDATORY
- 使用当前的事务,如果当前没有事务,就抛出异常。
- REQUIRES_NEW
- 新建事务,如果当前存在事务,把当前事务挂起。
- NOT_SUPPORTED
- 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
- NEVER
- 以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED
- 如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与REQUIRED类 似的操作。
eg:
<tx:advice id="txAdvice" transaction-manager="transactionManager">`
<tx:attributes>
<tx:method name="delete*" propagation="REQUIRED" read-only="false"
rollback-for="java.lang.Exception" /><!-- 所有异常的父类 -->
</tx:attributes>
</tx:advice>