{
"timestamp": 1518593096087,
"status": 500,
"error": "Internal Server Error",
"exception": "java.lang.IllegalArgumentException",
"message": "Null key returned for cache operation (maybe you are using named params on classes without debug info?) Builder[public java.lang.Long com.wonders.service.UserInfoServiceImpl.getUserBySpringCatche(com.wonders.entity.UserInfo)] caches=[userInfo] | key='#userInfo.uid' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'",
"path": "/springboot/getUserBySpringCatche"
"timestamp": 1518593096087,
"status": 500,
"error": "Internal Server Error",
"exception": "java.lang.IllegalArgumentException",
"message": "Null key returned for cache operation (maybe you are using named params on classes without debug info?) Builder[public java.lang.Long com.wonders.service.UserInfoServiceImpl.getUserBySpringCatche(com.wonders.entity.UserInfo)] caches=[userInfo] | key='#userInfo.uid' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'",
"path": "/springboot/getUserBySpringCatche"
}
先看核心代码:
@RequestMapping(value = "/getUserBySpringCatche",method = RequestMethod.POST) public Long getUserBySpringCatche(UserInfo userInfo){ return userInfoService.getUserBySpringCatche(userInfo); }
@Override @Cacheable(value = "userInfo", key = "#userInfo.uid") public Long getUserBySpringCatche(UserInfo userInfo) { Long id = userInfo.getUid(); UserInfo u1 = userInfoMapper.selectUserByCatche(id); System.out.println("查询结束为主键id为:" + id + "的数据做了缓存"); return userInfo.getUid(); }
报错原因:少加了
@RequestBody注解
public Long getUserBySpringCatche(@RequestBody UserInfo userInfo){ return userInfoService.getUserBySpringCatche(userInfo); }