Spring @Transactional 能掛在類別或方法前來管理交易,預設觸發rollback的機制如下。
@Transactional若沒有設定任何回滾(rollback)條件,例如沒有設定rollbackFor屬性,則預設只有交易發生的RuntimeException或Error才會進行rollback,對於能被捕捉的Exception例外並不會rollback。
若要對Exception進行rollback,則在交易所在的方法/類別的@Transactional設定rollbackFor屬性如下。
@Transactional(rollbackFor = Exception.class)
public void doTransaction() {
...
}
沒有留言:
張貼留言