当MyBatis启用二级缓存时,在映射文件中添加cache标签可以对结果缓存。如果一个映射文件的查询结果受到其他映射文件对数据库操作的影响,可以使用cache-ref标签引用其他映射文件的缓存配置。有时一个映射文件可能会查询多个表,在这种情况下,如果被引用的其他映射文件对数据库执行了增删改操作,希望此映射文件的缓存全部清空。有什么办法实现吗?
我弄懂了,MyBatis的缓存机制没有我说的这种功能。在MyBatis中,要么一个Mapper使用自己的缓存,要么多个Mapper共用一个缓存,这些Mapper之间没有优先级,一个Mapper如果要刷新自己的缓存,那么就一定会刷新其他和它共享的缓存。