事务的传播行为:一个方法运行在一个开启了事务的方法中,当前方法是使用原来的事务还是开启一个新的事务。
传播属性 | 描述 |
REQUIRED | 如果有事务在运行,当前的方法就在这个事务内运行,否则,就启动一个新的事务,并在自己的事务内运行。 |
REQUIRES_NEW | 当前的方法必须启动新事物,并在它自己的事务内运行,如果有事务正在运行,应该将它挂起。 |
SUPPORTS | 如果有事务在运行,当前的方法就在这个事务内运行,否则它可以不运行在事务中。 |
NOT_SUPPORTED | 当前的方法不应该运行在事务中,如果有运行的事务,将它挂起 |
MANDATORY | 当前的方法必须运行在事务内部,如果没有正在运行的事务,就抛出异常。 |
NEVER | 当前的方法不应该运行在事务中,如果有运行事务,就抛出异常。 |
NESTED | 如果有事务在运行,当前的方法就应该在这个事务的嵌套事务内运行,否则,就启动一个新的事务,并在自己的事务内运行。 |
事务的传播属性可以在@Transactional注解的propagation属性中定义
并且在isolation中可以设置事务的隔离级别。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)