`

spring mvc json循环引用JsonMappingException: Infinite recursion

    博客分类:
  • java
阅读更多
Java实体里两个对象有关联关系,互相引用,比如,在一对多的关联关系里,
老师对象,引用了学生列表
学生对象,引用了所属老师
就构成了互相引用。
在spring MVC中,要使其中的一个对像响应成json会造成无限递归引用的异常:

org.codehaus.jackson.map.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.entity.Person["organization"]->org.hibernate.collection.PersistentSet[0]->com.entity.PersonOrganization["person"]->com.entity.Person["organization"]->org.hibernate.collection.PersistentSet[0]...



因为要保持关联关系,不能在对象里解除掉关系解决这个异常,在对象的任一方的get方法上添加
注解:
比如在学生实体Student上添加
@ManyToOne
@JoinColumn(name="TEACHER_ID")
@JsonIgnore
public Teacher getTeacher()

即可解决无限递归引用的问题。
分享到:
评论

相关推荐

    解决返回JSON报错:HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowE

    然而,当出现"HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError)"这样的错误时,意味着在序列化过程中遇到了无限递归的问题。这个问题通常是由于对象之间的引用循环...

    2022最新版:INFINITE V3.4.4主题:多用途WordPress主题.rar

    标题"2022最新版:INFINITE V3.4.4主题:多用途WordPress主题.rar"表明我们正在讨论的是一个针对WordPress平台的网站主题,名为INFINITE,其版本号为V3.4.4。这个主题被称为“多用途”,意味着它设计得非常灵活,...

    Infinite.js:Infinite.js

    Infinite.js // Infinite.js $('.infinite-js').InfiniteJS({ debug: true, limit: { start: 0, total: 10, items: 10, }, repeat: { finish: 10, loadMore: 2, showLoadMore: true, }, navSelector : ...

    flutter_infinite_listview:Flutter Infinite ListView-具有可以在两个方向上无限滚动的项目的ListView。 维护者

    颤振无限ListView 具有可以在两个方向上无限滚动的项目的ListView。 快速使用 将您现有的ListView替换为InfiniteListView 。 由于其无限的性质,必须使用构建器模式。 例子 错误/请求 如果您遇到任何问题,请随时...

    jquery infinite-carousel插件

    - **无限循环**:Infinite Carousel的名称即揭示了其主要特点,它可以无缝地循环显示内容,让用户感觉内容是无穷无尽的,增加了用户体验的连贯性。 - **箭头控制**:提供前后箭头按钮,用户可以通过点击这些箭头来...

    infinitescroll+imagesLoaded+Masonry.zip

    - **data.json**:这是提供给 Infinitescroll 加载的 JSON 数据,通常包含要显示的项的信息,如图片链接、标题等。 - **readme.txt**:这是一个简短的说明文件,可能包含了关于如何运行和理解项目的指导。 - **css**...

    Infinite-Campus-SQL:Infinite Campus 的 SQL (SQL Server) 脚本存储库

    Infinite-Campus-SQL 这是 Infinite Campus 的 SQL (SQL Server) 脚本存储库。 这里的想法是,为公共或共享功能重新发明轮子并不是对学区资源的有效利用。 鼓励K12学区分享! Infinite Campus 还有一个专门讨论报告...

    jquery.infinitescroll滑动加载更多

    `jQuery.InfiniteScroll`是一个流行的JavaScript插件,用于实现网页内容的无限滚动效果。这个插件主要用于提升用户体验,当用户滚动页面到底部时,它会自动加载更多内容,无需手动点击“加载更多”按钮。这种技术常...

    infinite-swipe:Infinite Swipe 是一个简单的滑动库,可用于桌面和移动设备

    无限滑动 Infinite Swipe 是一个简单的滑动库,可用于桌面和移动设备。这个怎么运作将目标放置在显示 UI 的舞台上。 如果target有N个页面,target应该是stage的N倍。 bower install infinite-swipe很简单的例子首先...

    infinite-fake-json-data:加载由 json-server 提供的新数据的无限角度滚动

    安装 git clone git@github.com:bahmutov/infinite-fake-json-data.gitcd infinite-fake-json-datanpm run setup安装 json-server 的依赖、angular 前端依赖和伪数据生成器。开始演示 npm start这应该启动json-...

    finite:Infinite 的新回购!

    宝可梦对决 导航:| 服务器存储库| 介绍 这是可梦对战网站游戏服务器的源代码。 Pokémon Showdown 模拟了迄今为止所有游戏中的单打、双打和三打战斗(第 1 代到第 6 代)。 此存储库包含设置您自己的 Pokémon ...

    principals-library:Infinite Babel的主要投资者图书馆

    而"Infinite Babel"在此可能是对这个概念的现代化解读,可能是一个数字平台或者项目,旨在汇聚海量的信息和知识资源。 "主要投资者图书馆"则暗示了这是一个由投资者支持的项目,可能是一个在线平台或者数据库,为...

    Ignite:Infinite Red 的前沿 React Native 项目样板-开源

    这是 Infinite Red 团队日常用于构建客户端应用程序的 React Native 样板。 使用 Ignite 的开发人员报告说,从 React Native 项目开始,它平均为他们节省了两到四个星期的时间! Ignite 应用程序包括开箱即用的坚如...

    Rasa.NET:Infinite Rasa项目的AC#版本

    Rasa.NET .NET Core上运行的游戏的游戏和身份验证服务器的AC#实现。在你开始之前该项目正在开发中,尚未完成。 您可能无法以任何身份玩游戏。 有关最新信息,我们建议聊天室。如何使用此代码在运行游戏之前,有一些...

    infiniteLoop:Node.js中的无限循环

    无限循环Node.js的无限循环。 易于使用和良好的性能Node.js中重复运行任务的助手。 开始于: npm install infinite-loop易于使用: 要求它 var InfiniteLoop = require ( 'infinite-loop' ) ; 创建一个新的il var il...

    无限绘画-Infinite-Painter-4.0.9

    无限绘画:Infinite Painter APK名称:com.brakefield.painter 最新版本:4.0.9支持ROM:3.0及更高版本 界面语言:简体中文 软件大小:17.55 M 开发者:Sean Brakefield Infinite Painter是一款轻量级的绘画工具,...

    纯CSS3实现人物摇头动画.zip

    /* 循环播放 */ animation-timing-function: ease-in-out; /* 控制速度曲线 */ } ``` 这里,`personnage`是HTML元素的类名,`1s`是动画的总时长,`infinite`表示无限次播放,`ease-in-out`则控制了动画开始和结束...

    Rust编程中的循环:for与while的对决

    ### Rust编程中的循环:for与while的对决 Rust作为一种新兴的系统级编程语言,以其在安全性、并发性以及性能方面的突出表现而受到广泛关注。它不仅致力于提供与C/C++相媲美的性能,同时还强调内存安全性,使得开发...

Global site tag (gtag.js) - Google Analytics