Мой вопрос не в том, как избавиться от циклической зависимости, я знаю, как.
И, тем более, в нашем примере я буду использовать однонаправленное соединение.
Допустим, у нас естьмного связанных объектов:
@Entity
public class EntityOne {
@OneToMany
private Set<EntityTwo> entityTwoCollection;
}
@Entity
public class EntityTwo {
@OneToMany
private Set<EntityThree> entityThreeCollection;
}
@Entity
public class EntityThree {
@OneToMany
private Set<EntityFour> EntityFourCollection;
}
...
// 4, 5 ... 20
Если мы ничего не делаем и пытаемся сериализовать первый объект (EntityOne) в контроллере, при условии, что у него есть соединения, мы получим все двадцать сериализованных объектов, что ненеобходимо и очень дорого.
В моем случае мне нужно, чтобы первый объект (EntityOne) получал связанные объекты только к третьему.А для второго объекта (EntityTwo) вообще не отображайте связанные объекты, только ваши поля.
Вопрос в том, какие методы я должен использовать для отображения объектов в моем API на определенной глубине.Чтобы не делать запросы к базе данных объектов, которые мне не нужно отображать.