java.lang.Long cannot be cast to class java.lang.String at redis.serializer.StringRedisSerializer报错
·
报错详情 :

报错的大概意思就是 :
类型转换异常,不能够将Long类型转换成String类型;

原因 :

因为这里使用的是 : StringRedisTemplate这个对象 ,要求你所有的key,value都只能够是String类型 ;
然后我们在存入hash对象的时候 :
存入逻辑如下 : 以一个token作为key,UserDto转map作为value :

然而这个UserDto的id类型是Long类型的 :

所以会造成类型转换异常 :
解决办法 :
在进行存入的时候,将全部的value修改为String类型即可 :
// 7 . 2 将User对象转换为hash存储
UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class) ;
Map<String,Object> userMap = BeanUtil.beanToMap(userDTO,new HashMap<>(),
CopyOptions.create()
.setIgnoreNullValue(true)
.setFieldValueEditor((fieldName,fieldValue)->fieldValue.toString())
);

代码解读 :

更多推荐
所有评论(0)