正如自然忌讳真空一样,人类是讨厌平等的。——《我是猫》

MyBatis的一级缓存是SqlSession级别的缓存,默认是开启的。如果你想在查询时禁用一级缓存,可以使用@Options注解并将flushCache属性设置为true

1
2
3
4
5
6
7
8
9
10
11
12
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface MyMapper {

@Select("SELECT * FROM my_table WHERE id = #{id}")
@Options(flushCache = Options.FlushCachePolicy.TRUE)
MyEntity selectById(int id);

}

这样每次执行查询时,都会刷新缓存。