Двусторонняя установка вложенных объектов Джексона

1

У меня есть несколько проблем с десериализацией следующего 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;
}

Имея это в виду, я бы хотел, чтобы Джексон автоматически установил ParentObject.

Структура, которую я даю, почти идеальна, за исключением того, что ParentObject не установлен. Это необходимо, так как Hibernate затем устанавливает идентификаторы родителя, а затем устанавливает идентификаторы детей на основе этого значения, которое равно нулю.

Первоначально я установил его с помощью JSONManagedReference и BackReference, но он однонаправлен и при запросе одного объекта родительский объект будет проигнорирован.

Как я могу заставить это работать? Благодарю! Том

Теги:
spring
hibernate
jackson

1 ответ

0
Лучший ответ

Попробуйте использовать @jsonignore родителя @ManyToOne ParentObject;

Я думаю, что при десериализации это не будет учитывать и дать вам родительский объект.

С Уважением,

Прасад

Ещё вопросы

Сообщество Overcoder
Наверх
Меню