@Transactional来控制事务,那么能不能说出一些事务不生效的场景?
1.异常被try{}catch(){}捕捉到了,有异常就不会回滚。
2.当本类的使用@Transactional的方法被本类的其它没有开启事务的方法调用时,不会开启事务。
使用@Transactional的方法被其它类调用时,按照正常的事务传播行为规则开启事务
3.如果是mysql,注意表要使用支持事务的引擎,比如innodb,如果是myisam,事务是不起作用的
4.是否开启了对注解的解析 配置文件必须加<tx:annotation-driven />,否则不解析@Transactional
接口保证幂等性是基本的要求,那么幂等性你们是怎么做的?
幂等:一个操作多次执行产生的结果与一次执行产生的结果一致
解决:
1 全局唯一ID
2.去重表
3.插入或更新
4.多版本控制
5.状态机控制