1. 程式人生 > >@Transactional的粒度控制

@Transactional的粒度控制

org.springframework.transaction.annotation.Transactional; 開發時都會用到@Transactional,也都知道是丟擲異常的時候會回滾。那麼問題來了:異常有很多種我們能不能控制(告訴)發生什麼異常的時候才回滾呢? 出現這個問題的原因是我們需要定製異常。答案是肯定的 閱讀@Transactional原始碼發現它這裡有這樣一個東西

Class<? extends Throwable>[] rollbackFor() default {};

意思是發生什麼異常的時候進行回滾,而且而且而且(強調)令人驚喜的是這裡是一個集合,這就使得我們可以在這裡指定多個異常;

 @Transactional(rollbackFor = {NullPointerException.class, IOException.class})

這樣的程式碼寫上去,有沒有顯得更加的高大上。