Transaction 标签一般写在什么位置?
一般加载service 或者加在具体的方法上
Transaction 事务回滚规则
spring的Transaction有三种回滚规则
1.rollbackFor
2.rollbackForClassName
3.readonly
只读,读取查询数据使用,默认为false
4.timeout
超过设置时间,自动回滚,默认值是-1
5.name
当在配置文件中有多个事务管理器,可以用name来指定多个
6.isolation
事务的隔离度,默认Default
7.propagation
事务传播行为,默认值为Required
总结:
只写这个Transation 标签不指定 回滚方法
- 如果方法不是被public修饰的, 那么出现了异常不会回滚,那么就是说想要支持事务,那么这个方法必须被public修饰
- 如果是方法A调用方法B, 方法B打了事务注解,但是A是使用this.B(),那么事务也不会回滚
事务回滚规则:
可以在@Transaction 注解后制定回滚规则
- noRollbackFor 指定不回滚
- rollBackFor 指定回滚
- RuntimeException 异常回滚