2015-03-26 5 views
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, но он однонаправлен и при запросе одного объекта родительский объект будет проигнорирован.

Как я могу заставить это работать? Спасибо! Том

ответ

0

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

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

С уважением,

Прасад

Смежные вопросы