【发布时间】:2019-01-23 09:28:01
【问题描述】:
我有两个具有双向@OneToMany/@ManyToOne 关系的实体类。当我序列化Class A 时,我不想在A 类中有整个Class B,只有id 字段。但是,B 类仍然需要作为 A 类中的对象出现,而不仅仅是属性。我怎样才能做到这一点?我正在使用 JPA:2.2/Jackson:2.9.0
@Entity
public class A {
private long id;
@ManyToOne
private B b;
// ...
}
@Entity
public class B {
private long id;
private String str;
private boolean bool;
@OneToMany
Set<A> aList;
// ...
}
A类的期望结果:
{
"id" : 123;
"b" : {
"id" : 321;
}
}
【问题讨论】:
-
您尝试过使用@JsonIgnore 注释吗?或者你可以简单地删除 B 中的 A 对象,它仍然具有 ManyToOne 关系
-
@Mustahsan 我希望能够独立地获取/序列化 B 类。添加
@JsonIgnore会出现问题,因为这样我将永远不会访问对象内的那些字段。(?)Json 结构应该在问题中呈现 -
在A的对象前添加@JsonIgnore
-
对,但是我不会在 A 类中得到
"b" : { "id" : 321; },对吧? -
你会在 A 中得到它 我要求在 OneToMany 之前的 B 类中 A 的对象声明之前添加注释
标签: java json serialization jackson