gpt4 book ai didi

spring - @Transactional(rollbackFor = Exception.class) 和@Transactional(propagation=Propagation.REQUIRED) 之间有什么区别

转载 作者:行者123 更新时间:2023-11-29 04:11:21 24 4
gpt4 key购买 nike

@Transactional(rollbackFor = Exception.class) 
public void foo1() {
`/**Some Code**/`
}

@Transactional(propagation=Propagation.REQUIRED)
public void foo2() {
`/**Some Code**/`
}

最佳答案

@Transactional(propagation=Propagation.REQUIRED)@Transactional(rollbackFor = Exception.class) 大致相同。因为 propagation=Propagation.REQUIREDthe default .因此,考虑到这一点,它们等同于 @Transactional(propagation=Propagation.REQUIRED)@Transactional(propagation=Propagation.REQUIRED, rollbackFor = Exception.class)

唯一的区别是没有 rollbackFor = Exception.class 它只会回滚 RuntimeExceptionError 而不会回滚其他异常发生。 (这与使用 EJB 时的 JEE 相同,并且该行为也已转换为 Spring)。

javadoc of @Transactional 中也对此进行了解释.

关于spring - @Transactional(rollbackFor = Exception.class) 和@Transactional(propagation=Propagation.REQUIRED) 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54898227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com