@Transactional(propagation = "设置事务传播行为")
时间: 2024-02-26 19:55:32 浏览: 14
这是一个在 Spring 框架中使用的注解,用于控制事务的传播行为。propagation 属性用于设置事务的传播行为,它可以取以下值:
- REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
- SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
- MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
- REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则挂起该事务。
- NOT_SUPPORTED:以非事务的方式运行,如果当前存在事务,则挂起该事务。
- NEVER:以非事务的方式运行,如果当前存在事务,则抛出异常。
- NESTED:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则创建一个新的事务。
通过设置不同的传播行为,可以控制事务的行为,从而保证数据的一致性和完整性。
相关问题
19.下面选项对"@Transactional"描述正确的是() ☆ 【不定项选择】 A.@Transactional(propagation = "设置事务传播行为") B.@Transactional(rollbackFor = "指定回滚类型的异常") C.@Transactional(noRollbackFor = "指定回滚类型的异常") D.@Transactional(value= "设置事务传播行为")
A、B、C、D 都是正确的。
A. @Transactional(propagation = "设置事务传播行为"):用来设置事务的传播行为,常用的传播行为有:REQUIRED(默认值)、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED。
B. @Transactional(rollbackFor = "指定回滚类型的异常"):用来设置事务在遇到指定类型的异常时回滚,可以指定多个异常类型。
C. @Transactional(noRollbackFor = "指定不回滚类型的异常"):用来设置事务在遇到指定类型的异常时不回滚,可以指定多个异常类型。
D. @Transactional(value= "设置事务传播行为"):用来设置事务的传播行为,与 A 选项作用相同,只是写法不同。
@transactional(propagation = p
@transactional(propagation = p 的意思是使用Spring的事务管理器,并指定事务的传播行为为变量p所指定的类型。传播行为是指在方法或代码块中的事务如何参与到外层事务的管理中,例如PROPAGATION_REQUIRED表示当前方法必须在一个已存在的事务中运行,如果没有就开启一个新的事务;PROPAGATION_REQUIRES_NEW表示当前方法必须开启一个新的事务,而不是加入到外层事务中。 )