https://blog.csdn.net/ludengji/article/details/11584281
環(huán)境:springmvc+hibernate+json
在controller返回?cái)?shù)據(jù)到統(tǒng)一json轉(zhuǎn)換的時(shí)候,出現(xiàn)了json infinite recursion stackoverflowerror的錯(cuò)誤么翰,即json在將對象轉(zhuǎn)換為json格式的數(shù)據(jù)的時(shí)候锭亏,出現(xiàn)了無限遞歸調(diào)用的情況。
具體的情況如下:
A類中硬鞍,有個(gè)屬性:List b慧瘤, A與B的關(guān)系為 OneToMany;在B類中固该,有屬性A a,引用到A中的字段id锅减,并作為外鍵。hibernate查詢結(jié)果正常伐坏,可以看到返回的A對象中怔匣,有b參數(shù)值,但在json轉(zhuǎn)換的時(shí)候就出現(xiàn)了無限遞歸的情況桦沉。個(gè)人分析每瞒,應(yīng)該是json在序列化A中的b屬性的時(shí)候,找到了B類纯露,然后序列化B類剿骨,而B類中有a屬性,因此埠褪,為了序列化a屬性浓利,json又得去序列化A類,如此遞歸反復(fù)钞速,造成該問題贷掖。
解決:
在B類中a的getter setter方法上加注解@JsonBackReference,其實(shí)自己試過只在setter方法上加@JsonBackReference也夠了渴语。
參考文章: