JPA之多对多查询死循环嵌套问题及解决方案
问题
我在尝试用JPA来学Shiro的时候,如果双向查询,那么就会发生死循环嵌套造成stackOverFlow
肯定是百度过的撒,然后总结一下。
首先这不是JPA的问题,在controller接口中会进行JSON的序列化,因为双向的查询,就会发生查询时的嵌套循环,然后呢就栈溢出了
JPA生成的表结构

解决方法有两种
(1)不要双向查询
(2)在双向查询时用 @JsonIgnoreProperties忽略掉一个方向的字段

这样的化在转化为JSON后就不会查那个字段了

toString()的问题
这样的话解决了转化为JSON的死循环嵌套,那么toString()呢?
清空一个方向上的关于自己的集合,就可以断开死循环嵌套了。

事实上
事实上也不太可能出现这样情况,我只是为了让三个表没有从属关系才双向查询的。
然而一般的多对多关系都会有明显的从属关系
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java通过PropertyDescriptor反射调用set和get方法
这篇文章主要为大家详细介绍了Java通过PropertyDescriptor反射调用set和get方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-03-03
Java中ExecutorService和ThreadPoolExecutor运行原理
本文主要介绍了Java中ExecutorService和ThreadPoolExecutor运行原理,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-08-08
Java简单使用EasyExcel操作读写excel的步骤与要点
相信现在很多搞后端的同学大部分做的都是后台管理系统,那么管理系统就肯定免不了Excel的导出导入功能,下面这篇文章主要给大家介绍了关于Java简单使用EasyExcel操作读写excel的步骤与要点,需要的朋友可以参考下2022-09-09


最新评论