[英]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.