杰克逊双向嵌套对象设置

Jackson bi-directional nested object setting

我在反序列化以下内容时遇到了一些问题 json:

{
    children:[{name:"1c"},{name:"2c"},{name:"3c"}]
}

我的 类 看起来像这样:

@JsonIdentityInfo(scope=ParentObject.class,generator = ObjectIdGenerators.PropertyGenerator.class, property="id")
public class ParentObject {
 int id;
@OneToMany(cascade = CascadeType.ALL,mappedBy="parent",orphanRemoval=true)
 Set<Child> children;
}

@JsonIdentityInfo(scope=Child.class,generator = ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Child {
 int id;
 String name;
 @ManyToOne
 ParentObject parent;
}

考虑到这一点,我希望 Jackson 自动设置 ParentObject。

除了未设置 ParentObject 之外,我给出的结构几乎是完美的。这是必要的,因为 Hibernate 然后将设置父级的 ID,然后基于当前为 null 的这个设置子级的 ID。

我最初用 JSONManagedReference 和 BackReference 设置它,但它是单向的,当请求单个对象时,父对象将被忽略。

我怎样才能让它工作? 谢谢! 汤姆

尝试在 @ManyToOne 父对象父对象;

我认为反序列化时不会考虑它并给你一个父对象..

此致,

普拉萨德