1. 程式人生 > >Java基礎之《@Transactional註解需注意事項》

Java基礎之《@Transactional註解需注意事項》

@Transactional註解預設值 String value() default ""; Propagation propagation() default Propagation.REQUIRED; Isolation isolation() default Isolation.DEFAULT; int timeout() default TransactionDefinition.TIMEOUT_DEFAULT; boolean readOnly() default false;

只讀事務是否做無用功? https://blog.csdn.net/yulin_ganbo/article/details/78566835

注意事項: 1、@Transactional只能被應用到public方法上,對於其它非public的方法,如果標記了@Transactional也不會報錯,但方法沒有事務功能 2、如果是本類加了事務的方法,呼叫本類另一個加了@Transactional標籤的方法,事務也不會生效,因為切面是由代理類實現,代理類呼叫本類方法,是用this.xxx切面切不進去 3、哪些地方需要加事務: 只有查詢的方法可以不加事務 只有一句增刪改sql的方法,考慮資料庫操作後面會不會拋異常,拋異常了要不要回滾 4、要想事務回滾你的異常要麼派生自RuntimeException或者Error,或者在註解中用rollbackFor指定