繁体   English   中英

如何在Spring中用一种事务处理方法管理多个事务?

[英]How manage several transactions in one transactional method in Spring?

我有下一个代码

@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();
    }

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

因此,我的问题是:如果其中一个失败,那么如何正确地使该代码具有3个完全回滚的事务?

简单的答案,您的代码应仅保留(使用throws语句):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM