【JPA】——多對多查詢死循環嵌套解決方案

問題

本教主在嘗試用JPA來學Shiro的時候,如果雙向查詢,那麼就會發生死循環嵌套造成stackOverFlow

肯定是百度過的撒,然後總結一下。首先這不是JPA的問題,在controller接口中會進行JSON的序列化,因爲雙向的查詢,就會發生查詢時的嵌套循環,然後呢就棧溢出了

JPA生成的表結構

在這裏插入圖片描述

解決方法有兩種

(1)不要雙向查詢

(2)在雙向查詢時用 @JsonIgnoreProperties忽略掉一個方向的字段
在這裏插入圖片描述
這樣的化在轉化爲JSON後就不會查那個字段了
在這裏插入圖片描述

toString()的問題

這樣的話解決了轉化爲JSON的死循環嵌套,那麼toString()呢?清空一個方向上的關於自己的集合,就可以斷開死循環嵌套了。

在這裏插入圖片描述

事實上

事實上也不太可能出現這樣情況,本教主只是爲了讓三個表沒有從屬關係才雙向查詢的。然而一般的多對多關係都會有明顯的從屬關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章