У меня есть два класса, как показано ниже, в двунаправленном соотношении Many to Many:
Parent implements Serializable{
@ManytoMany(//declaration for join table)
@JsonBackReference
@com.fasterxml.jackson.annotation.JsonIgnore
Set <Child> childSet;
}
Child implements Serializable{
@ManytoMany(//declaration for join table)
@JsonManagedReference
@com.fasterxml.jackson.annotation.JsonIgnore
Set <Parent> parentSet;
// other getter and setters
}
Я делаю вызов в своем DAO, чтобы получить определенного родителя. Наряду с родительскими деталями я хочу получить дочерние элементы родителя. Что-то вроде этого:
Hibernate.initialize(parent.getChildSet()); //this works perfectly
// and I get the details of parent along with the children in my DAO call.
Но когда я делаю ниже в своем бизнес-сервисе, возвращая данные контроллеру, дети опускаются из родительской строки json.
jacksonMapper.writeValueAsString(parent);
Итак, я удалил атрибут @JsonIgnore on Child внутри родительского класса, думая, что Джексон может понять, что эти поля не должны игнорироваться при написании строки, как показано ниже. Но это все равно игнорирует их!: (
Parent implements Serializable{
@ManytoMany(//declaration for join table)
@JsonBackReference
//@com.fasterxml.jackson.annotation.JsonIgnore
Set <Child> childSet;
}
Любая идея, где я могу ошибиться?