jpa多对多查询死循环解决方案

本教主在尝试用jpa来学shiro的时候,如果双向查询,那么就会发生死循环造成stackOverFlow

肯定是百多过的撒,然后总结一下

首先这不是jpa的问题,在controller接口中会进行json的序列化,因为双向的查询,就会发生查询时的嵌套循环,然后呢就栈溢出了

1.jpa生成的表结构

jpa多对多查询死循环解决方案

2.然后呢解决方法有两种:

(1)不要双向查询

(2)在双向查询时用 @JsonIgnoreProperties 忽略掉一个方向的字段
jpa多对多查询死循环解决方案
这样的化在转化为json后就不会查那个字段了
jpa多对多查询死循环解决方案

3.这样的话解决了转化为json文件的死循环,那么toString()呢

jpa多对多查询死循环解决方案
清空一个方向上的关于自己的集合,就可以断开死循环了。

4.事实上

事实上也不太可能出现这样情况,本教主只是为了让三个表没有从属关系才双向查询的。

然而一般的多对多关系都会有明显的从属关系