Task

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import javax.persistence.*;

import java.io.Serializable;

import java.util.Date;

import java.util.List;

/**

* Created by change.

* 任务

*/

@Entity

@Table(name = "task")

@Data

public class TaskEntity implements Serializable {

private static final long serialVersionUID = -8305163456196952851L;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

@Column

private String target;

@Column

private int type;

@Column(name = "start_at")

private Date startAt;

@Column(name = "end_at")

private Date endAt;

@Column(name = "data_path")

private String dataPath;

@Column

private int status;

@Column(name = "status_text")

private String statusText;

@Column

private String description;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "taskEntity")

private List searchPoliceEntityList;

}

SearchPolice

import com.fasterxml.jackson.annotation.JsonBackReference;

import javax.persistence.*;

import java.io.Serializable;

/**

* Created by challenge.

* 搜索策略

*/

@Entity

@Table(name = "search_police")

@Data

public class SearchPoliceEntity implements Serializable {

private static final long serialVersionUID = -2766200716493656577L;

@Id

@GeneratedValue(strategy = GenerationType.IDENTITY)

private Long id;

@Column

private int rate;

@Column

private String level;

@Column(name = "snr")

private String SNR;

@ManyToOne

@JoinColumn(name = "task_id")

@JsonBackReference

private TaskEntity taskEntity;

}

json序列化的对象中存在双向引用会导致的无限递归(infinite recursion)问题。

使用@JsonBackReference标记在有多对一或者多对多关系的属性上即可解决这个问题。

ps:

@JsonManagedReference:标记的属性会被序列化,序列化时属性默认都是会被序列化的。反序列(deserialization,即json数据转换为对象)时,如果没有@JsonManagedReference,则不会自动注入@JsonBackReference标注的属性。

@JsonIgnore:直接忽略某个属性,以断开无限递归,序列化或反序列化均忽略。当然如果标注在get、set方法中,则可以分开控制,序列化对应的是get方法,反序列化对应的是set方法。在父子关系中,当反序列化时,@JsonIgnore不会自动注入被忽略的属性值(父或子),这是它跟@JsonBackReference和@JsonManagedReference最大的区别。

jpa 多层嵌套一对多_JPA一对多、多对多json序列化死循环问题解决相关推荐

  1. Android多层嵌套Fragment中调用系统相机拍照以及裁剪的相关问题解决

    多层嵌套Fragment中调用系统相机拍照.裁剪 最近公司项目有频繁使用相机拍照的需求,然后频繁的实际使用过程中遇到很多大大小小的坑,在此记录下. (ps.关于一些拍照后图片旋转.裁剪设置返回数据为t ...

  2. jpa 多层嵌套一对多_OpenJPA-嵌套的一对多关系合并问题

    将其发布在这里是因为我在这里没有太大的兴趣:http : //www.java- forums.org/jpa/96175-openjpa-one-many-within-one-many-merge ...

  3. 元素多层嵌套,JS获取问题

    如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧. HTML: <!DOCTYPE html> <ht ...

  4. python字典多层嵌套

    你的问题是想的太多,读书太少... 7 人赞同了该文章 python的数据结构功能很强大,之前的文章中总结了一些字典的操作,这里专门总结一个字典嵌套的例子,以备不时之需: 首先说一下需求,我有一个li ...

  5. 递归python首尾相同的子字符串_推荐Python语言多层嵌套list的递归处理方法

    本文主要向大家介绍了Python语言多层嵌套list的递归处理方法,希望对大家学习Python语言有所帮助. 问题:用Python处理一个多层嵌套list['and', 'B', ['not', 'A ...

  6. Bootstrap中模态框多层嵌套时滚动条问题

    在使用Bootstrap中模态框过程中,如果出现多层嵌套的时候,如打开模态框A,然后在A中打开模态框B,在关闭B之后,如果A的内容比较多,滚动条会消失,而变为Body的滚动条,这是由于模态框自带的遮罩 ...

  7. MSSQL的多层嵌套查询

    今天在聊天系统中需要系统执行一个多层嵌套查询. 一开始语句如下总出现错误:原来是在]='123') 后我多加了一个 as tb1 改为如下后,正确运行. select * from ( select ...

  8. List<Map<String, Object>>——多层嵌套的数据结构

    文章目录 快速理解多重嵌套结构 Map基础知识 List 例子 查询数据库 快速理解多重嵌套结构 对于多层嵌套的数据结构,需要层层分解. 以List<Map<String, Object& ...

  9. html自定义列表第三层嵌套,【微信小程序】关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取...

    起因:意图是想实现类似于安卓viewpager那样的效果,想到了用微信小程序的swiper组件,但如果每个swiper-item里都只用一个wx:for来渲染数据的话实在是太慢了,就想到多层嵌套数据渲 ...

最新文章

  1. Java常用命令及Java Dump
  2. 3 个问题:MIT专家论述关于阻碍AutoML发展的障碍
  3. WPF新手实践7:MVVM Light Toolkit(七、Messenger)
  4. 1^2+2^2+……+n^2的公式证明
  5. 深入浅出VC++串口编程--短信应用开发
  6. 红橙Darren Android视频笔记 自定义view的三个构造方法以及一种实现换肤的方案 测量mode
  7. 品牌设计分析思维导图模板分享
  8. 【每月总结】2021年6月
  9. 智能制造信息化系统·详解
  10. oracle表空间缩减操作手册
  11. Tableau画地图
  12. 电脑开机黑屏错误代码U盘重装系统教学
  13. 鲲鹏、昇腾、欧拉——计算产业的矩阵已足够宽广
  14. C++17值类型 (Value Categories)
  15. php eos,EOS区块链PHP开发包
  16. 全面解析马斯克的产业帝国
  17. 评论一下《PPT演义》
  18. Emgu CV4图像处理之ROI与mask掩码10(C#)
  19. 招聘 | 浙江大学杨杰课题组2022招聘科研助理两名-医学AI/NLP
  20. Visio双击形状编辑文字

热门文章

  1. java3d翻转纪念相册_HTML5 3D旋转相册的实现示例
  2. oracle打开 txt文件,oracle 导入txt文件
  3. 方程求根(牛顿迭代法)
  4. Python遍历文件夹获取文件名并写入excel
  5. Python3.x的print()输出问题
  6. TP4056(x) 锂电线性充电电路应用手册
  7. 发货通知单不允许新增,只能关联生成
  8. python爬虫之requests模块2
  9. JS concat() 方法
  10. IOS开发-关于自定义TabBar条