spring事物的传播行为和隔离级别

来源:互联网 发布:国家数据统计 编辑:程序博客网 时间:2024/05/29 02:18

1.      传播行为

1.        propagation_required 表示当前方法必须运行在事物中,如果当前事物存在,加入, 不存在,则新建

2.      propagation_requirednew 不管事物存在与否,新建事物,如果当前事物存在,被挂起,调用结束,原事物恢复执行

3.      propagation_supports :该方法在某个事务范围内被调用,则方法成为该事务的一部分。如果方法在该事务范围外被调用,该方法就在没有事务的环境下执行。

4.      propagation_not_supported 声明方法不需要事务。如果方法没有关联到一个事务,容器不会为他开启事务,如果方法在一个事务中被调用,该事务会被挂起,调用结束后,原先的事务会恢复执行。

5.      paopagation_madatory 只能在存在的事物中执行,无法新建事物

6.      propagation_nested 如果一个活动的事务存在,则运行在一个嵌套的事务中。如果没有活动事务,则按REQUIRED属性执行。它使用了一个单独的事务,这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事务造成影响。它只对DataSourceTransactionManager事务管理器起效。

7.      propagation_never 决不能在事物范围内执行,如果则抛例外

 

2.      隔离级别

1.      isolation_default  默认的隔离级别和 jdbc一致

2.      isolation_read_uncommitted  可读取事物未提交的数据,会出现脏读,不可重复读,幻读

3.      isolation_read_committed  保证一个事物修改后提交后才能被另外事物读取

4.      isolation_repeatable_read 避免脏读,和不可重复读,但可能出现幻像读

5.      isolation_serilizable 事物顺序执行,避免脏读,不可重复读,幻像读

0 0
原创粉丝点击