PROPAGATION_MANDATORY
时间: 2024-04-30 13:16:32 浏览: 116
PROPAGATION_MANDATORY是Spring事务传播行为的一种类型,它表示当前方法必须在一个已经存在的事务中运行。如果当前方法没有在一个已经存在的事务中运行,那么就会抛出异常。与PROPAGATION_REQUIRED不同,如果当前方法并没有在一个已经存在的事务中运行,PROPAGATION_MANDATORY会抛出异常而不是创建一个新的事务。
下面是一个使用PROPAGATION_MANDATORY的Java示例代码片段:
```java
@Service
@Transactional
public class FooServiceImpl implements FooService {
@Autowired
private BarService barService;
@Override
public void foo() {
// do some business logic
barService.bar(); // call another method with PROPAGATION_MANDATORY
// do some more business logic
}
}
@Service
@Transactional(propagation = Propagation.MANDATORY)
public class BarServiceImpl implements BarService {
@Override
public void bar() {
// do some business logic
}
}
```
在上面的代码中,当FooServiceImpl的foo()方法被调用时,它会在一个事务中运行,因为@Transactional注解已经被添加到FooServiceImpl类上。当调用barService的bar()方法时,它必须在一个已经存在的事务中运行,因为在BarServiceImpl类上添加了@Transactional(propagation = Propagation.MANDATORY)注解,这意味着如果当前方法没有在一个已经存在的事务中运行,就会抛出异常。
阅读全文