Spring事务的传播行为
- propagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是最常见的选择。
- propagation_supports:支持当前事务,如果没有当前事务,就以非事务方法执行。
- propagation_mandatory:使用当前事务,如果没有当前事务,就抛出异常。
- propagation_required_new:新建事务,如果当前存在事务,把当前事务挂起。
- propagation_not_supported:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
- propagation_never:以非事务方式执行操作,如果当前事务存在则抛出异常。
- propagation_nested:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与propagation_required类似的操作事务的隔离级别:
事务的隔离级别
脏读(事务二读取到事务一未提交的事务,如果事务一的数据回滚,那事务二读的数据就是脏数据,读未提交),不可重复读(事务一第一次读取的数据和第二次读取的数据不一致,中,),幻读(事务一第一次读到数据了数据,事务二插入了一行数据,事务一再次读的时候,多了一行数据)。1. 读未提交, read uncommit 脏不幻,2. 读以提交,read commit 不幻,3. 可重复读, repeatable read 幻,4. 串行化读,serlalizable。