spring 七种事务传播行为和五种事务隔离级别

事务传播行为:propagation_控制事务传播行为

1.REQUIRED(默认值):如果当前有事务,就在事务中执行;如果没有事务,就新建一个事务

2.SUPPORTS:如果当前有事务,就在事务中执行;如果没有事务,就在非事务状态下执行

3.MANDATORY:必须在事务内部执行,如果当前有事务,就在事务中执行;如果没有事务,就报错

4.REQUIRES_NEW:必须在事务内部执行,如果当前有事务,把当前事务挂起;如果没有事务,就新建一个事务

5.NOT_SUPPORTED:必须在非事务状态下执行,如果当前没有事务,正常执行;如果当前有事务,就把当前事务挂起

6.NEVER:必须在非事务状态下执行,如果当前没有事务,正常执行;如果当前有事务,就报错

7.NESTED:必须在事务状态下执行,如果没有事务,新建事务;如果当前有事务,创建一个嵌套事务

事务隔离级别:isolation=”” 事务隔离级别

1.DEFAULT:默认值,由底层数据库自动判断应该使用什么隔离级别

2.READ_UNCOMMITED:可以读取未提交数据,可能出现脏读,不重复读,幻读.

3.READ_COMMITED:只能读取其他事务已提交数据.可以防止脏读,可能出现不可重复读和幻读.

4.REPEATABLE_READ:读取的数据被添加锁,可以防止脏读,不可重复读,但可能出现幻读

5.SERIALIZABLE:最高隔离级别,排队操作,对整个事务加锁,一个事务在操作数据时,另一个事务要等这个事务操作完才能操作数据,是最安全的,但是效率最低

猜你喜欢

转载自blog.csdn.net/qq_31580305/article/details/83244373