项目使用的 Springdata RedisTemplate 操作redis 使用 Jackson2JsonRedisSerializer序列化数据
数据库持久层使用jpa,Product与ProductCategory是关联关系
上图是序列化后在redis中存储的数据
有的数据序列化后 是 ProductCategory_$$_javassist_66 有的是 ProductCategory_$$_javassist_67
我直接操作redis将_$$_javassist_66 改为67后 应用程序访问数据就没有问题了,不然会报错
javassist和jackson序列化不是很懂,所以我想问知道原理之后,该如何解决这个问题呢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
<p>对象循环引用了自己就会出现这种情况,例如,一个班级对象包含学生对象List,学生对象其中一个属性又是这个班级对象本身,在将班级对象序列化JSON时就会出现这种引用情况</p>
<p>可以简单的理解成 序列化=将对象转换成标准toString后的字符串, 反序列化:再将这个字符串转换成对象 所以涉及到父子级别循环呢引用,很容易出问题,要慎重</p>