1、注解方式实现(声明式事务)
在方法或者类前面加上下面注解
@Transactional(value="transactionManager", rollbackFor = Exception.class)
这种情况经常会出现事务不生效的情况,下面对不生效的几种情况做一个总结
- 如果你@Transactional标注的方法不是public的,事务将无效
- 如果你使用@Transactional的时候贪图简单没有写里面的rollbackFor = Exception.class,那只有当发生unchecked异常的时候才能事务回滚,checked的异常事务无效。
- 如果你使用的是Mysql,那么你要注意你的表的存储引擎是否是InnoDB。如果不是Inn