CompletableFuture在Mybatis中批量更新过程中的坑

575 阅读1分钟

需求如下: 需要更新数据库中若干个数据项的数据,为了提高效率,我使用了CompleteFeature,但是会发现一个问题, 在mybatis执行更新语句时,不是原子操作,会将更新操作分成三步: 1、预处理要执行的sql 2、填充参数 3、返回执行结果 由于被分成3步,在程序中出现多个CompleteFeature时,会导致线程1处理了第一和第二步,此时线程切换到线程2,去处理其他事情,再切换回线程1时,拿到更新的结果数据不正确。

image.png

现在我就先放弃使用CompleteFeature,不知道有没有大佬遇到同样的问题?