簡體   English   中英

與方法注解者@Transactional的通信

[英]Communication to caller of method annotated @Transactional

我有一個使用Spring @Transactional批注的方法:

    @Transactional
    public void persistAmendments(int _cutsheetId) {
          ...
    }

如果發生迫使該事務回滾的條件,那么persistAmendments()的調用者將如何知道這一點? 我希望我的調用代碼能夠適當地處理這種情況。 是否有拋出堆棧的特殊異常?

調用持久層的方法將捕獲所有RuntimeExceptions,這將使其知道持久化數據時發生了錯誤。 默認情況下,Spring回滾任何引發RuntimeException的事務。 這是我的意思的簡短示例。

AmendementService

@Service
public class AmendmentService {

    @Autowired
    private AmendmentRepository amendmentRepository;

    public boolean persistAmendments(int _cutsheetId) {
        boolean persistSuccessful = true;
        try {
            amendmentRepository.persistAmendments(_cutsheetId);
        } catch (RuntimeException e) {
            persistSuccessful = false;
        }
        return persistSuccessful;
    }
}

AmendmentRepository

@Repository
public class AmendmentRepository {

    @Transactional
    public void persistAmendments(int _cutsheetId) {
        //attempt to persist
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM