Java-互相关联的实体无限递归问题
2016-11-29 15:41
591 查看
今天在测试的时候出现了一个bug,在把关联实体序列化返回的过程中报错了,提示
Column实体中有Table属性,Table实体中也有Column属性,导致了在序列化的过程中出现了死循环,无限递归,以至堆栈溢出报错。
在Jackson2.0以前的解决办法是:
在关联的属性上添加
注解中的一个即可。但是从Jackson2.0以后的版本开始,提供@JsonIdentityInfo注解实现这个问题的解决,在实体类前加注解
具体参考
http://wiki.fasterxml.com/JacksonFeatureObjectIdentity/
Caused by: java.lang.StackOverflowError: null这个是堆栈溢出错误,根据错误线索查找,最后发现Column和Table实体互相关联,也就是说
Column实体中有Table属性,Table实体中也有Column属性,导致了在序列化的过程中出现了死循环,无限递归,以至堆栈溢出报错。
在Jackson2.0以前的解决办法是:
在关联的属性上添加
@JsonBackReference或者
@JsonIgnore
注解中的一个即可。但是从Jackson2.0以后的版本开始,提供@JsonIdentityInfo注解实现这个问题的解决,在实体类前加注解
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
具体参考
http://wiki.fasterxml.com/JacksonFeatureObjectIdentity/
相关文章推荐
- jackson java转json hibernate懒加载造成的无限递归问题
- jackson java转json hibernate 造成的堆栈溢出 无限递归问题
- hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题
- java与json互相转换(解决日期问题)
- Java问题抽象和递归(母羊生母羊问题为例)
- java经典算法_016猴子吃桃问题(递归)
- 省市区级联选择时,jackson 序列化这个对象出现无限递归的问题
- java Hibernate 一对多自身关联问题
- Hibenrate实体关联中遇到的问题
- EntityFramework 关于实体模型自关联问题
- Java问题抽象和递归(母羊生母羊问题为例)
- 递归三兄弟——数的乘方、背包问题、组合的Java实现
- java中递归问题
- RIA Service中对于递归实体类型处理的问题及解决方案
- n皇后问题java递归实现
- 实验一 分治与递归―棋盘覆盖问题 java实现
- oracle script : java 实体互相付值自动匹配 ,自动生成代码
- RIA Service中对于递归实体类型处理的问题及解决方案
- LINQ TO SQL数据实体应该这样设计(解决多表关联问题)
- java中使用递归求解汉诺塔问题