jpa 多层嵌套一对多_JPA一对多、多对多json序列化死循环问题解决
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序列化死循环问题解决相关推荐
- Android多层嵌套Fragment中调用系统相机拍照以及裁剪的相关问题解决
多层嵌套Fragment中调用系统相机拍照.裁剪 最近公司项目有频繁使用相机拍照的需求,然后频繁的实际使用过程中遇到很多大大小小的坑,在此记录下. (ps.关于一些拍照后图片旋转.裁剪设置返回数据为t ...
- jpa 多层嵌套一对多_OpenJPA-嵌套的一对多关系合并问题
将其发布在这里是因为我在这里没有太大的兴趣:http : //www.java- forums.org/jpa/96175-openjpa-one-many-within-one-many-merge ...
- 元素多层嵌套,JS获取问题
如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧. HTML: <!DOCTYPE html> <ht ...
- python字典多层嵌套
你的问题是想的太多,读书太少... 7 人赞同了该文章 python的数据结构功能很强大,之前的文章中总结了一些字典的操作,这里专门总结一个字典嵌套的例子,以备不时之需: 首先说一下需求,我有一个li ...
- 递归python首尾相同的子字符串_推荐Python语言多层嵌套list的递归处理方法
本文主要向大家介绍了Python语言多层嵌套list的递归处理方法,希望对大家学习Python语言有所帮助. 问题:用Python处理一个多层嵌套list['and', 'B', ['not', 'A ...
- Bootstrap中模态框多层嵌套时滚动条问题
在使用Bootstrap中模态框过程中,如果出现多层嵌套的时候,如打开模态框A,然后在A中打开模态框B,在关闭B之后,如果A的内容比较多,滚动条会消失,而变为Body的滚动条,这是由于模态框自带的遮罩 ...
- MSSQL的多层嵌套查询
今天在聊天系统中需要系统执行一个多层嵌套查询. 一开始语句如下总出现错误:原来是在]='123') 后我多加了一个 as tb1 改为如下后,正确运行. select * from ( select ...
- List<Map<String, Object>>——多层嵌套的数据结构
文章目录 快速理解多重嵌套结构 Map基础知识 List 例子 查询数据库 快速理解多重嵌套结构 对于多层嵌套的数据结构,需要层层分解. 以List<Map<String, Object& ...
- html自定义列表第三层嵌套,【微信小程序】关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取...
起因:意图是想实现类似于安卓viewpager那样的效果,想到了用微信小程序的swiper组件,但如果每个swiper-item里都只用一个wx:for来渲染数据的话实在是太慢了,就想到多层嵌套数据渲 ...
最新文章
- Java常用命令及Java Dump
- 3 个问题:MIT专家论述关于阻碍AutoML发展的障碍
- WPF新手实践7:MVVM Light Toolkit(七、Messenger)
- 1^2+2^2+……+n^2的公式证明
- 深入浅出VC++串口编程--短信应用开发
- 红橙Darren Android视频笔记 自定义view的三个构造方法以及一种实现换肤的方案 测量mode
- 品牌设计分析思维导图模板分享
- 【每月总结】2021年6月
- 智能制造信息化系统·详解
- oracle表空间缩减操作手册
- Tableau画地图
- 电脑开机黑屏错误代码U盘重装系统教学
- 鲲鹏、昇腾、欧拉——计算产业的矩阵已足够宽广
- C++17值类型 (Value Categories)
- php eos,EOS区块链PHP开发包
- 全面解析马斯克的产业帝国
- 评论一下《PPT演义》
- Emgu CV4图像处理之ROI与mask掩码10(C#)
- 招聘 | 浙江大学杨杰课题组2022招聘科研助理两名-医学AI/NLP
- Visio双击形状编辑文字