問題
本教主在嘗試用JPA來學Shiro的時候,如果雙向查詢,那麼就會發生死循環嵌套造成stackOverFlow
肯定是百度過的撒,然後總結一下。首先這不是JPA的問題,在controller接口中會進行JSON的序列化,因爲雙向的查詢,就會發生查詢時的嵌套循環,然後呢就棧溢出了
JPA生成的表結構
解決方法有兩種
(1)不要雙向查詢
(2)在雙向查詢時用 @JsonIgnoreProperties
忽略掉一個方向的字段
這樣的化在轉化爲JSON後就不會查那個字段了
toString()
的問題
這樣的話解決了轉化爲JSON的死循環嵌套,那麼toString()
呢?清空一個方向上的關於自己的集合,就可以斷開死循環嵌套了。
事實上
事實上也不太可能出現這樣情況,本教主只是爲了讓三個表沒有從屬關係才雙向查詢的。然而一般的多對多關係都會有明顯的從屬關係