开发者社区 问答 正文

Springdata RedisTemplate 操作redis 使用 Jack?400报错

项目使用的 Springdata RedisTemplate 操作redis 使用 Jackson2JsonRedisSerializer序列化数据
数据库持久层使用jpa,Product与ProductCategory是关联关系

上图是序列化后在redis中存储的数据
有的数据序列化后 是 ProductCategory_$$_javassist_66 有的是 ProductCategory_$$_javassist_67
我直接操作redis将_$$_javassist_66 改为67后 应用程序访问数据就没有问题了,不然会报错
javassist和jackson序列化不是很懂,所以我想问知道原理之后,该如何解决这个问题呢

展开
收起
爱吃鱼的程序员 2020-06-06 10:38:40 697 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>对象循环引用了自己就会出现这种情况,例如,一个班级对象包含学生对象List,学生对象其中一个属性又是这个班级对象本身,在将班级对象序列化JSON时就会出现这种引用情况</p>
                    
    
                        <p>可以简单的理解成 序列化=将对象转换成标准toString后的字符串,  反序列化:再将这个字符串转换成对象   所以涉及到父子级别循环呢引用,很容易出问题,要慎重</p>
    
    2020-06-06 10:38:55
    赞同 展开评论