2011年7月22日 星期五

Spring Transcation 學習筆記

參考來源: Transaction Management


* 使用預設的Proxy mode時, @Transactional 只能用在 public method 上. 除非改用 AspectJ mode.

* Spring 不建議 @Transactional 用於 interface 上. (除非你使用 interface-based proxy )


* 預設只有在發生 Unchecked Exception 時才會自動 rollback, 可以指定Exception來Rollback.
ex @Transactional(rollbackFor=Exception.class)


* TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 可以手動rollback


* eclipse 似乎無法 auto import Annotation 中的變數, 當使用 Propagation 時會出現 Propagation cannot be resolved to a variable 的錯誤, 手動 import org.springframework.transaction.annotation.Propagation; 即可.