Mybatis二级缓存关于多表关联时修改被关联表数据,缓存没清空的问题

表结构如下:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(16) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

CREATE TABLE `user_info` (
  `userId` int(11) NOT NULL,
  `idNumber` varchar(18) DEFAULT NULL COMMENT '身份证号',
  `realName` varchar(40) DEFAULT NULL,
  `birthday` date DEFAULT NULL,
  `sex` char(1) DEFAULT NULL COMMENT '男:1  女:0',
  PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

UserMapper如下:


	
	
		
		

		
		
	
	
	

 
  UserInfoMapper如下: 
  


	
	
		
		
		
		
		
	

我是把user和userinfo 1:1关联到一块,在进行数据查找时,如service.findUserByUserId(1);操作,Mybatis会将数据加到缓存中,后续的findUserByUserId不会对数据库查找。但是,如果我此时更新UserInfo呢?

结果很残酷,findUserByUserId查询的依然是缓存,如何才能将被关联的表的cache清空,查询数据库呢?

此时需要使用标签 


	

	
		
		

		
		
	
	
	

 
  UserInfoMapper如下: 
  


	
	
		
		
		
		
		
	



你可能感兴趣的:(Mybatisr二级缓存,表关联,Mybatis)