- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我知道@JsonIgnore
和@JsonManagedReference
,@JsonBackReference
都是用来解决无限递归(StackOverflowError)的
code>,这两者有什么区别?
注意:这些是 Jackson 注释。
最佳答案
假设我们有
private class Player {
public int id;
public Info info;
}
private class Info {
public int id;
public Player parentPlayer;
}
// something like this:
Player player = new Player(1);
player.info = new Info(1, player);
@JsonIgnore
private class Info {
public int id;
@JsonIgnore
public Player parentPlayer;
}
和 @JsonManagedReference
+ @JsonBackReference
private class Player {
public int id;
@JsonManagedReference
public Info info;
}
private class Info {
public int id;
@JsonBackReference
public Player parentPlayer;
}
将产生相同的输出。上面演示案例的 输出 是:{"id":1,"info":{"id":1}}
这是主要区别,因为使用 @JsonIgnore
进行反序列化只会将 null 设置为该字段,因此在我们的示例中 parentPlayer 将为 == null。
但是使用 @JsonManagedReference
+ @JsonBackReference
我们将在那里获得 Info
引用
关于java - @JsonIgnore 和 @JsonBackReference、@JsonManagedReference 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37392733/
我有来自用户和角色的关系,其中角色具有“一对多”关系,而用户与“role_id”列具有“多对一”关系 当我在 Spring Boot 上使用关系时,当我使用 @OneToMany 和 @ManyToO
我正在使用 spring 4.0.1、hibernate 4.3.5、jackson 1.9.2 和 STS IDE我正在创建一个以 JSON 格式返回数据的 RESTful 网络服务当我使用 Hib
我对 JSON 的了解有限,因此希望您能为我指出正确的方向。 我正在尝试发布一个对象(库),但这会由于无限递归而引发异常 public class Library{ private List
我想知道Jackson中@JsonManagedReference和@JsonBackReference的区别? 最佳答案 @JsonManagedReference is the forward p
我正在使用 RestEasy、Jboss 7 和 EJB 3.1。我正在创建一个以 JSON 格式返回数据的 RESTful Web 服务。 问题是我有一个 @ManyToOne在序列化过程中导致无限
我有两个类: 人.java: @Entity @PrimaryKeyJoinColumn(name="owner_id") public class Person extends Owner {
非常感谢您解释我的问题。 我有 2 个实体和 1 个桥接表实体, 假设他们是团队、用户和团队用户。 团队实体: @Id @GeneratedValue(strategy = Gener
非常感谢您解释我的问题。 我有 2 个实体和 1 个桥接表实体, 假设他们是团队、用户和团队用户。 团队实体: @Id @GeneratedValue(strategy = Gener
回答 我将解决有关此博客的问题 Jackson – Bidirectional Relationships 谢谢你。 更新2 问题与 JsonBackReference 和 JsonManagedRe
在我的 Spring Data Rest 应用程序中,定义 excerptProjection 时,@JsonBackReference 将被忽略。 调用 GET/foos/{id} 时,我得到响应:
我知道@JsonIgnore和@JsonManagedReference,@JsonBackReference都是用来解决无限递归(StackOverflowError)的 code>,这两者有什么区
为了避免无限递归,我使用 @JsonManagedReference 和 @JsonBackReference 。但是在检索结果时,我只能以一种方式获得预期结果。 @ManyToMany(ca
我正在使用 Spring Boot 编写 OneToMany 关系,一个属性可以有多个 propertySale。 这是我的属性类: @Data @Getter @Entity @Table(name
我读过了 http://vard-lokkur.blogspot.com/2010/10/json-jackson-to-rescue.html http://vard-lokkur.blogspot
我是一名优秀的程序员,十分优秀!