JPA出现recursion 死循环导致栈内存溢出问题 Could not write JSON: Infinite recursion (StackOverflowError)

@JsonIgnore

被注解的字段忽略被序列化, 字段不再赋值.

@JsonBackReference

只是遇到recursive只会序列化一遍,  序列化过的不会再循环序列化了, 字段还是会赋值.

原文地址:https://www.cnblogs.com/smileblogs/p/12341114.html

时间: 2024-10-17 16:06:04

JPA出现recursion 死循环导致栈内存溢出问题 Could not write JSON: Infinite recursion (StackOverflowError)的相关文章

drools规则引擎因为内存泄露导致的内存溢出

进入这个问题之前,先了解一下drools: 在很多行业应用中比如银行.保险领域,业务规则往往非常复杂,并且规则处于不断更新变化中,而现有很多系统做法基本上都是将业务规则绑定在程序代码中. 主要存在的问题有以下几个方面: 1) 当业务规则变更时,对应的代码也得跟着更改,每次即使是小的变更都需要经历开发.测试验证上线等过程,变更成本比较大. 2) 长时间系统变得越来越难以维护. 3) 开发团队一般是由一个熟悉业务的BA(业务分析人员)和若干个熟悉技术的开发人员组成,开发人员对业务规则的把握能力远不及

json infinite recursion stackoverflowerror

昨天在公司平台上进行开发时遇到的问题,研究了一天才弄明白,具体情况如下: 在controller返回数据到统一json转换的时候,出现了json infinite recursion stackoverflowerror的错误,即json在将对象转换为json格式的数据的时候,出现了无限递归调用的情况. 具体的情况如下: A类中,有个属性:List<B> b, A与B的关系为 OneToMany:在B类中,有属性A a,引用到A中的字段id,并作为外键.hibernate查询结果正常,可以看到

Ubuntu 16.04中XMind 8导致Java内存溢出的问题解决(硬盘卡死,桌面卡死)

XMind使用的是Java进行开发,如果出现内存溢出的问题,那么一定是桌面快捷方式的问题,解决方法是直接修改快捷方式里面的内容,修改如下: [Desktop Entry] Encoding=UTF-8 Version=1.0 Type=Application Name=XMind Icon=xmind.png Path=/opt/xmind8/XMind_amd64 Exec=/opt/xmind8/XMind_amd64/XMind StartupNotify=false StartupWMC

Hibernate导致的内存溢出问题

在使用Hibernate的过程中发现如下问题: 若在HQL语句中包含IN子句,并且在IN中选项过多则会出现如下异常: java.lang.StackOverflowError: at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:42) at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java

高并发下Netty4底层bug导致直接内存溢出分析

事故记录: 10点游戏开服,迅速冲破2300+单区同时在线 18点15分,运营反应玩家进不了,准备吃饭的人被抓回来排查故障 发现,由于直接内存被占满,一直在Full GC ,并且回收不掉,所以完全不处理玩家请求,通知运维重启服务器,临时解决. 2.考虑了下是不是把RPC连接数量改成了8条,超时改长了了导致,试着把数量减少,超时改成2个小时,发现直接内存随着时间推移还在增加. 3.把内存数据dump了一份下来,发现是netty底层占用比例大大超出了正常水平. 输出缓冲区ChannelOutboun

Andorid 内存溢出与内存泄露,几种常见导致内存泄露的写法

内存泄露,大部分是因为程序的逻辑不严谨,但是又可以跑通顺,然后导致的,内存溢出不会报错,如果不看日志信息是并不知道有泄露的.但是如果一直泄露,然后最终导致的内存溢出,仍然会使程序挂掉.内存溢出大部分是关于图片的请求,然后又没有及时的释放内存,而导致的内存泄露. 下面是几种常见的导致内存泄露的写法.有些是收集的别的地方的,我也是看到才知道自己写错了,分享一下吧 1.单例造成的内存泄漏 大家都喜欢用Android的单例模式,不过使用的不恰当的话也会造成内存泄漏.因为单例的静态特性使得单例的生命周期和

Android性能优化(一)--关于内存溢出

一个善于自嘲的人,不是因为内心强大,而只是想巧妙地让别人闭嘴.(心情标签) 关于内存溢出的问题 关于栈内存溢出的问题,想必大家或多或少都会遇到过,不像好久不见,却如胶似漆,不经意间都会碰到<( ̄︶ ̄)>.我同桌曾经还对我那么一句煽情却又无比夸张的话,"我敲代码一天不遇到内存溢出,我就难受",他也是够了-.. 今天就以我目前所了解到各种关于内存溢出产生的原因和解决方法,分别与大家分享分享,内容不当或知识点理解片面错误,还望指出. 1.关于优化的了解 Android堆内存也可自

关于JVM内存溢出的原因分析及解决方案探讨

前言:JVM中除了程序计数器,其他的区域都有可能会发生内存溢出. 0.什么是内存溢出 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出. 1.内存泄漏和内存溢出区别与联系 内存泄漏:系统分配的内存没有被回收. 内存溢出:分配的内存空间超过系统内存. 2.内存泄漏的原因分析   jvm由5大块组成:堆,栈,本地方法栈,程序计数器,方法区.栈它的主要记录方法的执行和对象的引用.堆则存在真正的引用的对象. 内存泄漏是由于使用不当,把一部分内存“

java常见内存溢出情形

虚拟机栈溢出(如果虚拟机在扩展时无法申请到足够的内存空间将抛出OutOfMemoryError) package com.jvm.memory; import java.util.ArrayList; import java.util.List; public class HeapOOM { /** * VM 运行时参数 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError * @param args */ public static void main