【报错】jpa 双向映射导致栈溢出&Jackson的常用注解

2023-10-27

org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: com.bonc.ds.dataset.bean.DataSourceDef["dataSetDef"]->org.hibernate.collection.internal.PersistentBag[0]->com.bonc.ds.dataset.bean.DataSetDef["dataSourceDef"]->com.bonc.ds.dataset.bean.DataSourceDef["dataSetDef"]->org.hibernate.collection.internal.PersistentBag[0]->com.bonc.ds.dataset.bean.DataSetDef["dataSourceDef"]->com.bonc.ds.dataset.bean.DataSourceDef["dataSetDef"]-

……

就转换成json栈溢出

解决方式:添加,公司用的FasterXML Jackson 2.X

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)

 

知识点:

@JsonIgnore注解用来忽略某些字段,添加后不会序列化和反序列化

@JsonIgnoreProperties(ignoreUnknown = true),将这个注解写在类上之后,就会忽略类中不存在的字段。这个注解还可以指定要忽略的字段,例如@JsonIgnoreProperties({ “password”, “secretKey” })

@JsonProperty:使用在某个属性上,这个注解有两个作用,第一是修改返回JSON数据的时候字段属性名(key)设定成value的指定值,第二个作用是配合属性access=JsonProperty.Access.WRITE_ONLY表示属性只反序列化,直观效果就是返回的数据没有该属性。

WRITE_ONLY:仅做反序列化操作。前端拿不到这个数据
READ_ONLY:仅做序列化操作。

@JsonFormat可以帮我们完成格式转换。例如对于Date类型字段,如果不适用JsonFormat默认在rest返回的是long,如果我们使用@JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”),就返回"2018-11-16 22:58:15"

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【报错】jpa 双向映射导致栈溢出&Jackson的常用注解 的相关文章

随机推荐

  • div失去焦点事件onblur()无效

    初学js事件 想做一个点击时变红 取消聚焦时变白的div 于是我这样写代码 div style width 100px height 50px border 1px solid div
  • 谷歌Chrome浏览器开发者工具教程—基础功能篇

    Chrome F12开发者工具 是非常实用的开发辅助工具 对于前端开发者简直就是神器 但苦于开发者工具是英文界面 且没有中文 这让很多朋友都不知道怎么用 下载吧小编为大家带来Chrome开发者工具基础功能和高级性能分析器 Timeline
  • 背包问题的动态规划算法和fptas

    背包问题 instance 给定n个item i 1 2 n i 1 2 dots n weights w1 w2 wn Z w 1 w 2 dots w n in Z values v1 v2 vn Z v 1 v 2 dots v n
  • 搭建CentOS在线yum源镜像服务器

    说明 操作系统 CentOS 6 7 Nginx版本 1 8 0 rsync版本 3 0 6 IP地址和端口 192 168 3 100 8080 目标 同步CentOS镜像站点的内容到此服务器 通过配置http服务器 提供yum服务 一
  • Python——math库常用的数学函数

    在使用math库前 要用import导入该库 上图为math库中常用的一些数学函数 下面给出具体实例 例1 import math a eval input 请输入一个负数 print a math fabs a 输出结果 例2 impor
  • 【LeetCode刷题】237 删除链表中的节点

    题目 请编写一个函数 用于 删除单链表中某个特定节点 在设计函数时需要注意 你无法访问链表的头节点 head 只能直接访问 要被删除的节点 题目数据保证需要删除的节点 不是末尾节点 示例 这题其实真的简单 只能直接访问到给定要删除的节点 本
  • 设置Tab键为4个空格 Java开发手册规范之tab键设置

    设置Tab键为4个空格 在阿里的Java开发手册 一 编程规约 三 代码格式 第5条提到 强制 采用4个空格缩进 禁止使用tab字符 IDEA中勿勾选 Use tab character eclipse中必选 insert spaces f
  • [JAVEee]SpringBoot项目的创建

    SpringBoot可以更好的开发Spring项目 本文章将使用idea社区版来演示创建项目的过程与注意事项 SpringBoot的优点 SpringBoot中内置快速添加依赖的功能 能够便捷的集成各种框架 帮助开发 内置运行容器 无需配置
  • Linux top里面%CPU和us%的解释

    有的同学会把 CPU和us 搞晕 也就是下图所示在top的时候查看cpu的信息 这时有的同学会问 这两个CPU到底哪个是对的 其实都是对的 只是表达的意思不一样 官方解释如下 Cpu s 34 0 us 用户空间占用CPU百分比 CPU 上
  • 2023华为OD机试真题【最小调整顺序次数】

    问题描述 给定一个队列 但是这个队列比较特殊 可以从头部添加数据 也可以从尾部添加数据 但是只能从头部删除数据 输入一个数字n 会依次添加数字1 n 也就是添加n次 但是在添加数据的过程中 也会删除数据 要求删除必须按照1 n按照顺序进行删
  • 13 二叉树:建立存储结构(前序输入次序) &&二叉树专题

    目录 首先讲讲指针的引用 然后我们再复习一下typedef的用法 然后我们来创建二叉树 二叉树的建立 首先二叉树的存储结构 实际用代码体现 分为顺序存储和链式存储两种 但一般情况我们都用链式存储结构 部分内容转自指针的引用 MAGDB的博客
  • ChatGPT还有哪些不足?

    从技术角度来看 ChatGPT作为一个基于神经网络的自然语言处理模型 其优势在于能够处理大量的语言数据 并生成自然流畅的语言表达 ChatGPT还可以通过对话历史的分析 对当前对话进行上下文感知和情境推理 从而提供更加个性化和智能化的回答
  • Lua 输出可变参数列表内容

    在 Lua 中有8种基本数据类型 nil boolean number string user data function thread table 数据类型 描述 nil 表示一个无效值 boolean 包含两个值 false 和 tru
  • 第三章:关系数据库标准语言SQL

    模式数据定义语言 Schema Data Definition lanuage DDL 外模式数据定义语言 Subschema Data Definition lanuage 外模式DDL 数据存储有关的描述语言 Data storage
  • fedora常用命令

    fedora经验总结 新手必看 一 常用技巧 1 在linux中设置环境变量的方法 如果命令在环境变量已经设置的路径下 在终端命令行输入该命令的文件名和参数 如需要参数 回车即可 如果不在已设路径下 命令前需要加上完整的路径 每次都这样会很
  • Kotlin学习笔记

    1 方法中的参数 有var val 与没有的区别 fun A var name String fun A name String 有var val 表示是当前类的一个属性 无var val 表示是当前方法的一个参数 2 Kotlin中各种声
  • yolov5txt格式的labels转为coco的json格式

    最近在学习ppyoloe 标签文件的格式是coco的json格式 需要把yolov5的txt文件转为json 以下代码即可实现 import os import json import cv2 import random import ti
  • python创建学生类姓名学号_python定义一个学生类,包括学号、姓名和出生日期三个属性(数据成员);包括一个用...

    匿名用户 1级 2018 11 09 回答 import datetime class student def init self Sno Sname Sbarthday Sfaction self Sage 0 self Sgarde 优
  • 代码审计-Java项目&Filter过滤器&CNVD分析&XSS跨站&框架安全

    文章目录 Demo Filter 过滤器引用 Demo ST2框架 组件安全 CNVD Jeesns XSS跨站绕过 CNVD 悟空CRM Fastjson组件 Demo Filter 过滤器引用 Filter Javaweb三大组件之一
  • 【报错】jpa 双向映射导致栈溢出&Jackson的常用注解

    org springframework http converter HttpMessageNotWritableException Could not write JSON Infinite recursion StackOverflow