Если класс B имеет коллекцию класса A, тогда набор A в классе B должен быть аннотирован @OneToMany
, а поле в классе A должно быть аннотировано @ManyToOne
, тогда вы можете поставить свой @JsonIgnore
нанабор примерно так:
class A {
//some fields
@ManyToOne private B b; //if only A is requested, this should NOT be ignored
}
class B {
//some fields
@OneToMany
@JsonIgnore
private Set<A> collectionOfAs;
}
Я предполагаю, что вы получали ошибку StackOverflow, потому что когда вы выбирали какой-то объект класса B, он приносил с собой набор объектов класса As, который сам приносилтот же объект класса B, который был первоначально извлечен, и это будет происходить бесконечно, если вы не предоставите @JsonIgnore в поле Set.Таким образом, при вызове объекта класса A их объект поля класса B также будет выбран, но при вызове объекта класса B их коллекция класса As будет игнорироваться.