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 事物顺序执行,避免脏读,不可重复读,幻像读