java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JPA之多对多查询死循环嵌套问题

JPA之多对多查询死循环嵌套问题及解决方案

作者:十二翼堕落天使

这篇文章主要介绍了JPA之多对多查询死循环嵌套问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题

我在尝试用JPA来学Shiro的时候,如果双向查询,那么就会发生死循环嵌套造成stackOverFlow

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

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

JPA生成的表结构

解决方法有两种

(1)不要双向查询

(2)在双向查询时用 @JsonIgnoreProperties忽略掉一个方向的字段

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

toString()的问题

这样的话解决了转化为JSON的死循环嵌套,那么toString()呢?

清空一个方向上的关于自己的集合,就可以断开死循环嵌套了。

事实上

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文