关于事务的问题
问题描述:老师请问下这是为什么,是什么导致的。
我的后续解决办法是:
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { @Override public void afterCommit() { //需要提交之后执行的代码 } });
但是并没有理解原理
10
收起
正在回答 回答被采纳积分+1
1回答
CC老师
2022-12-23 09:08:36
你这个场景用的技术是什么?是如何远程调用的? 从你的描述来看,貌似还是有事务的传播;如果确定完全没有分布式事务的话,那就当作是 两个 不同的事务,操作同一个数据库,这个时候后续查不到的情况,大概有这么几种:1: 前面业务操作锁了表,导致后面事务排队,无法插入新数据 2:事务执行的时间差,就是后面插入的事务还没完成,但是你前面的这个线程,已经执行到查询这个数据了 3: 还有一种可能就是,你数据库采用的 主从 ,你插入数据在在master,但是查询数据在slave,master和slave之间同步数据有一个时间差,你查询的时候,还没有同步过来。 当然具体是啥情况,还得结合你具体实现来分析,这里只是提几点思考的方向和可能性。
Java 亿级项目架构设计与落地应用
- 参与学习 110 人
全网稀缺 一次性掌握超大型项目架构设计与落地能力 快速铲平架构理论门槛 迅速拨高架构实际应用能力 帮助3年以上Java工程师突破能力瓶颈,技术发展空间更上一层楼
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星