跳到正文
伩仁的博客
返回

一次springboot事务bug的处理

工作需要将一条数据分别存入es(Elasticsearch)和mysql, 实现方法是: 在 springboot框架里面用@Transactional注解应用的方法保证事务.

抄一条事务的解释: 事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务开始未进行操作的状态。

今天发现一条数据存入了mysql, 但是没有存入es, 也就是事务失败了, es出现异常时候没有回退. 谷歌等各种搜索都说@Transactional处理事务是可以的. 只能尝试和猜测各种写法的问题, 在一次把方法的private改成public后,发现idea没有提示, 难道是因为这个原因? 再次发送数据后,发现事务成功了.

用 public 事务 当关键字在谷歌上一搜发现果然是: 只有@Transactional 注解应用到public 方法,才能进行事务管理

记录一下, 希望以后写事务的时候每次都记住这次大坑.



上一篇
mac 安装和设置java maven
下一篇
java注解笔记