记录业务中所发现的问题,并且通过事务隔离级别的方式解决
具体问题描述:
测试类(调用方):
异步类(被调用方):
根据上述的操作,我先是在调用方中插入了一条数据,然后调用了异步方法去查询(查询刚才名叫张三的数据),但是等待阻塞获取之后,查询的结果为null并没有查询到,这是因为被调用方的事务和调用方并不是同一个事物,在调用方还未提交的时候,其他事物自然是查询不到的.
解决方案:
这里最简单的方案其实就是直接修改被调用方的事务隔离级别,让他可以读取到其他事物还没有提交的数据,具体修改如下图:
但是在大多数业务中可能并不适用,因为这种方式很容易出现读取到不该处理的脏数据!!!
但是在大多数业务中可能并不适用,因为这种方式很容易出现读取到不该处理的脏数据!!!
但是在大多数业务中可能并不适用,因为这种方式很容易出现读取到不该处理的脏数据!!!
重要的事情说三遍!
我在实际业务中,是类似于插入了之后是拿着返回的主键id去异步查询的所以并不存在读取到脏数据的情况.