@Transactional 是springMVC,的事務注解
可在ApplicationConfig.java中添加注解
@Configuration //辨別此類是配置檔案
@EnableTransactionManagement //辨別配置檔案中,啟用事務注解
在類中引用事務管理器
@Bean
public PlatformTransactionManager transactionManager() {
return new HibernateTransactionManager(sessionFactoryBean().getObject());
}
---------以上就能在springMVC中使用事務注解 @Transactional 了
在使用過程中碰到了@Transactional始終不起效的問題,各種嘗試,個中苦悶就不說了

原來是因為我配置的注解放在了service方法中的内部方法裡面了。
原來事務隻能在service類中被外部調用的首層方法中才啟效果
即
public void a(){
b();
}
@Transactional
public void b(){
}
此時controller中調用a方法,b中的事務是不起作用,隻有直接調用b方法事務才啟用。
還有就是錯誤捕捉的問題,隻有報RuntimeException時才會復原
除非自己在事務中添加指定抛出的錯誤@Transactional(rollbackFor=Exception.class)
事務才會復原
以上。
//=============================
再次碰到事務不起作用,使用資料庫為mysql
查了很多發現是資料庫設定問題
mysql資料庫隻有Innodb引擎支援事物
MyISAM引擎不支援事務,速度快