跳转至

MyBatis

一级缓存对象复用问题

使用mybatis查询时,如果请求的参数和打印的sql语句都相同,则会触发一级缓存处理,直接返回上一次查询的结果对象引用。如果我们对查询结果对象重新进行了赋值处理,则第二次会拿到第一次赋值之后的数据。

解决方案

  1. 重新赋值处理使用新的对象
  2. 强制刷新缓存,在查询语句的xml配置里面增加参数 flushCache="true"

评论