spring事务

了解spring事务机制

what

简单来讲,就是操作要么一起成功,要么一起失败;主要的目的是为了保证数据的一致性

事务传播机制

required 如果当前没有事务,就自动创建一个新的事务,如果当前存在事务,就加入该事务
supports 支持当前事务,如果当前存在事务,就加入该事务,如果没有,就以非事务的方式来执行
mandatory 如果当前有事务执行事务,如果没有事务会报异常
request_new 无论当前有没有事务都要创建一个新的事务
not_supported 以非事务的方式执行,如果存在事务,将该事务挂
never 以非事务的方式执行,如果存在事务,就抛出异常
nested 如果当前存在事务,会嵌套在事务内部执行(如果外层事务回滚,会导致内存层事务回滚,如果内层事务回滚,只会回滚自己的事务),相当于加入已经存在的事务当中,如果当前没有事务,则按required属性执行

how

日常使用最多的应该就是@transactional 注解

注意

有一个使用!@transcational失效的情况

失效情况链接