簡體   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