海印网
海印网

Redis存储点赞数据时,Integer类型转换失败如何解决?

admin数码00

Redis存储点赞数据时,Integer类型转换失败如何解决?-第1张图片-海印网

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类型转换失败如何解决?的详细内容,更多请关注其它相关文章!

Tags: 类型数据

Sorry, comments are temporarily closed!