我正在尝试使用父/子引用序列化对象图,本质上我有一个如下所示的实体:
@Entity (name = "Container")
@JsonIdentityInfo(generator=JSOGGenerator.class)
public class Container {
public String type = "parent";
@JsonManagedReference ("child")
@OneToMany (mappedBy = "parent", cascade = CascadeType.PERSIST)
public List<Child> children;
}
@Entity (name = "Child")
@JsonIdentityInfo(generator=JSOGGenerator.class)
public class Child {
public String type = "child";
@JsonBackReference ("child")
@ManyToOne
public Parent parent;
}
当我尝试将其序列化给客户端时,这就是我得到的:
{
"type": "parent",
@id: 1
"children": [
{
"type": "child",
@id: 2
},
{ ... }
]
}
我看到@id
所有对象的属性,但看不到任何@ref
属性。如果我对 jsog 和 jsog-jackson 的理解正确,那么实际上应该序列化:
{
"type": "parent",
@id: 1
"children": [
{
"type": "child",
@id: 2
@ref: 1
},
{ ... }
]
}
我真正想要的是一种在浏览器中恢复序列化 JSOG 之后恢复对父级的原始反向引用的方法,这样@ref
我就可以取回parent
每个child
对象中的属性。