当前位置:   article > 正文

java.lang.Long cannot be cast to class java.lang.String at redis.serializer.StringRedisSerializer报错_class java.lang.long cannot be cast to class java.

class java.lang.long cannot be cast to class java.lang.string (java.lang.lon

报错详情 : 

 报错的大概意思就是 : 

类型转换异常,不能够将Long类型转换成String类型;

原因 : 

因为这里使用的是 : StringRedisTemplate这个对象 ,要求你所有的key,value都只能够是String类型 ;

然后我们在存入hash对象的时候 : 

存入逻辑如下 : 以一个token作为key,UserDto转map作为value  : 

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

所以会造成类型转换异常 : 

解决办法 : 

在进行存入的时候,将全部的value修改为String类型即可 :

  1. // 7 . 2 将User对象转换为hash存储
  2. UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class) ;
  3. Map<String,Object> userMap = BeanUtil.beanToMap(userDTO,new HashMap<>(),
  4. CopyOptions.create()
  5. .setIgnoreNullValue(true)
  6. .setFieldValueEditor((fieldName,fieldValue)->fieldValue.toString())
  7. );

 

代码解读 : 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/604695
推荐阅读
相关标签
  

闽ICP备14008679号