在controller返回数据到统一json转换的时候,出现了json infinite recursion stackoverflowerror的错误,即json在将对象转换为json格式的数据的时候,出现了无限递归调用的状况。json
具体的状况以下:hibernate
A类中,有个属性:List<B> b, A与B的关系为 OneToMany;在B类中,有属性A a,引用到A中的字段id,并做为外键。hibernate查询结果正常,能够看到返回的A对象中,有b参数值,但在json转换的时候就出现了无限递归的状况。我的分析,应该是json在序列化A中的b属性的时候,找到了B类,而后序列化B类,而B类中有a属性,所以,为了序列化a属性,json又得去序列化A类,如此递归反复,形成该问题。 同时值得注意的是必须重写其中一个类toString方法,去除其中另外一个类的内容,不然也会形成无限递归的产生。对象
解决:递归
在B类中a的getter setter方法上加注解@JsonBackReference,只在setter方法上加@JsonBackReference也够了。
get
若是是使用lombok注解,能够直接在B类的a字段上添加注解@JsonBackReferenceit