您的位置:首页 > 编程语言 > Java开发

Java-互相关联的实体无限递归问题

2016-11-29 15:41 591 查看
今天在测试的时候出现了一个bug,在把关联实体序列化返回的过程中报错了,提示

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/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: