不能将Long类型转化为String类型(java.lang.Long cannot be cast to java.lang.String)
UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class);
//userDTO对象里里有的字段是Long类型的
Map<String, Object> userMap = BeanUtil.beanToMap(userDTO);
//stringRedisTemplate 执行 putAll方法时不允许有值为空或者为Long(此时报错)
stringRedisTemplate.opsForHash().putAll(tokenKey,userMap);
解决方法:
UserDTO userDTO = BeanUtil.copyProperties(user, UserDTO.class); //执行putAll方法的时候会出现Long类型不允许转化为String类型 //所以转化为map是要对userDTO对象做修改 //setIgnoreNullValue(true)是允许为空字段 //fieldValue.toString()是将其他类型都转化为String Map<String, Object> userMap = BeanUtil.beanToMap(userDTO,new HashMap<>(), CopyOptions.create() .setIgnoreNullValue(true) .setFieldValueEditor((fieldName,fieldValue) -> fieldValue.toString()));
stringRedisTemplate.opsForHash().putAll(tokenKey,userMap);
P33-31:00分钟
https://www.bilibili.com/video/BV1cr4y1671t?p=33&vd_source=9739dbf60076a45502de1fb324bb3804

浙公网安备 33010602011771号