springboot事务传播机制在什么情况下可以使用NEVER
时间: 2023-05-27 16:05:01 浏览: 97
Springboot事务传播机制中的NEVER表示当前方法不允许在事务内执行,如果当前存在事务,则抛出异常。因此,NEVER只能在不需要事务支持的方法中使用,例如查询方法或只读操作方法。如果在需要事务支持的方法中使用NEVER,则会导致事务无法正常执行,可能会引发数据不一致等问题。因此,使用NEVER时需要谨慎考虑,并确保当前方法不需要事务支持。
相关问题
springboot事务传播机制NEVER在什么情况下使用?
NEVER传播机制表示不会存在事务,即不会开启新事务,也不会加入已有事务。因此,NEVER传播机制不适用于需要使用事务的场景,比如需要保证数据的一致性和完整性的操作,例如转账、订单支付等。如果在这些场景下使用NEVER传播机制,将可能导致数据的不一致和丢失,严重影响系统的稳定性和可靠性。
springboot事务传播机制
Spring Boot事务传播机制是指在一个事务方法调用另一个事务方法时,如何处理这些事务的传播行为。Spring中定义了多种事务传播行为,可供开发者按照实际需要使用,常见事务传播行为如下:
1. REQUIRED:默认的事务传播机制,如果当前没有事务,那么就新建一个事务,如果已经有事务在进行中,那么就加入到这个事务中,不管是抛出异常还是正常结束都会提交事务。
2. SUPPORTS:如果当前有事务在进行中,那么就加入到这个事务中,如果当前没有事务在进行中,那么就不开启事务。
3. MANDATORY:如果当前有事务在进行中,那么就加入到这个事务中,如果当前没有事务,在抛出异常。
4. REQUIRES_NEW:无论当前是否有事务在进行,都会新建一个事务并执行。
5. NOT_SUPPORTED:当前如果有事务在进行,就将事务挂起,执行完后再继续当前事务。
6. NEVER:当前如果有事务在进行,直接抛出异常。
7. NESTED:在当前事务的嵌套事务中执行,并独立于嵌套事务之外的其他所有事务运作,如果抛出异常则只回滚当前事务的嵌套事务,而不包括其他事务。
阅读全文