gpt4 book ai didi

java - Spring中如何在一个事务方法中管理多个事务?

转载 作者:行者123 更新时间:2023-12-02 10:39:11 24 4
gpt4 key购买 nike

我有下一个代码

@Transactional
public void f1() {
try {
lock();
//some logic
} catch (Exception ex) {
} finally {
releaseLock();
}


@Transactional(propagation = Propagation.REQUIRES_NEW)
public void lock() {
repository.doLock();
}


@Transactional(propagation = Propagation.REQUIRES_NEW)
public void releaseLock() {
repository.doReleaseLock();
}

我想要下一个行为:如果某些逻辑出现问题,锁将被释放。在调试和日志中我看到非常奇怪的行为。代码工作流程永远不会访问finally。

所以,我的问题是:这段代码如何正确地拥有 3 个事务,如果其中一个事务失败则完全回滚?

最佳答案

简单的答案,您的代码应该只保留(带有 throws 语句):

 @Transactional
public void f1() {
//some logic
}

关于java - Spring中如何在一个事务方法中管理多个事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055576/

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