redis存储数据时遇到参数类型转换的问题?
问题描述
存入的是点赞的数据,包括点赞用户id、被点赞文章id、被点赞回答id。后端传入的数据已经是字符类型,但后端报错java.lang.classcastexception: java.lang.integer cannot be cast to java.lang.string。
问题分析
从错误信息中可以看出,问题出在值为stringredisserializer序列化的hash值上。当试图将整型值(constant.redis_like_code)放入使用stringredisserializer序列化的hash中时,就发生了类型转换错误。
解决方法
要解决此问题,可以将constant.redis_like_code的值更改为string类型,以便与stringredisserializer兼容。或者,也可以将hash值序列化器更改为支持整型的序列化器,例如jackson2jsonredisserializer。
修改后的代码
@Override public void saveLiked2Redis(String likeUserID, String likePostID, String likeAnswerID) { String key = RedisKeyUtils.getLikedKey(likeUserID, likePostID, likeAnswerID); // 将REDIS_LIKE_CODE改为String类型 String value = Constant.REDIS_LIKE_CODE.toString(); redisTemplate.opsForHash().put(RedisKeyUtils.MAP_KEY_USER_LIKED, key, value); }
登录后复制
以上就是Redis存储点赞数据时,Integer类型转换失败如何解决?的详细内容,更多请关注其它相关文章!
Article Links:https://www.hinyin.com/n/257969.html
Article Source:admin
Article Copyright:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。