spring事务与Elasticjob
记一次spring+springmvc数据库操作增加事务
1.首先检查数据表类型,表类型分为两种一种支持事务(InnoDB)一种不支持(MyISAM)默认创建不支持。
2.如在需要回滚的代码中使用了try/catch,则在抛出异常的时候需抛出throw new RuntimeException();否则回滚不生效。
3.spring事务回滚在 Elasticjob中不生效的问题:如果事务操作在 implements SimpleJob的类里面,回滚无法生效,此问题研究了下说是Elasticjob在调用的时候没有走spring容器所以此处回滚不生效,目前我的解决办法是将implements SimpleJob的类另写一个然后在通过@Autowired调用事务操作类
然后测试能正常回滚,在测试Elasticjob的时候需要更改job:simple ID名称不然会报类引用错误,因为在注册中心上旧ID对应的是旧类。如有错误谢谢指教。