[英]Nested Spring Transaction never rollback
我正在處理一個服務層,它在執行任務時記錄到數據庫。 我想確保每當發生錯誤時此日志不會回滾,因為我應該始終記錄失敗的嘗試。 下面是示例代碼,用於解釋我想要的內容。
@Transactional(rollbackFor=Exception.class)
public void performTask()
{
//Perform task 1
log("task1Complete");
//Perform task 2
log("task2Complete");
}
@Transactional()
public void log(String message)
{
//commit message to DB
//This should never rollback
}
我認為這樣做的方法是開始新的交易,但我不確定如何。
使用 :
@Transactional(propagation = Propagation.REQUIRES_NEW)
請注意,如果您使用的是JDK Proxies或CGIL Proxies,則在“this”上調用@Transactional方法將無法打開事務。 您必須使用AspectJ,或者在另一個對象上調用它以通過其代理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.