对同一个表的操作过程如下
1.根据项目id查询需求表list====》旧数据
2.根据主键id批量更新需求表相关数据====>出现新数据
3.根据项目id查询需求表list====》查询的是在第二个步骤改后的新数据
4.根据主键id批量更新需求表部分字段【不需要更新的字段其值设置了null】===》再次出现新数据
5.上述执行完毕之后,开启一个监听事件
6.再度根据项目id查询需求列表list,不过此时加了根据创建时间倒序排序的查询条件===》查询出第一次的旧数据
7.根据主键id批量更新需求表【所有字段值更新,需要更新的字段的字段值重新set了一遍,不需要更新的根据查出来的值保留】====》更新完了之后部门字段的值变成了第一步查询时的旧值
后来解决=====》
在最后一次更新时,只更新需要更新的字段的值,其他不需要更新的字段,字段值设置为null,避免对其他字段值造成影响(因为mybatisplus不会传入的参数为null的字段值的)
反思
开始我以为是mysql的查询缓存,但是后来查看了一下mysql的版本是8.0以上的,不支持查询缓存,目前还是不知道为什么,单纯记录一下