Я видел эту проблему повсюду, и пока я следовал их решениям, и она исправила мою проблему, я не очень понимаю, что происходит.Мои объекты:
@Entity
public class ItemInOrder {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
@ManyToOne
Bill bill;
String comment;
}
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="@id")
public class Bill {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
int id;
@OneToOne
Table table;
@OneToMany(mappedBy = "bill")
List<ItemInOrder> itemi_vo_naracka = new ArrayList<>();
}
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.UUIDGenerator.class, property="@id")
public class Table {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
int id;
@OneToOne
Bill order_na_ovaa_masa;
}
Моя ошибка возникает, когда я вызываю базовый метод репозитория JPA, чтобы найти все ItemsInOrder:
return itemInOrderService.getAllItemsInOrder();
The exception says that the infinite loop is happening between Table and Bill:
Infinite recursion (StackOverflowError) (through reference chain: bla.bla.domain.Bill["table"]->bla.bla.domain.Table["order_na_ovaa_masa"]-> and so and so on..
Так может кто-нибудь объяснить мне, что происходило до того, как я добавил @JsonIdentityInfo (generator = ObjectIdGenerators.UUIDGenerator.class, property = "@ id") над моими объектами, и что происходит после этого.
Я прочитал несколько объяснений, но я не совсем понимаю, что происходит со всей этой сериализацией и десерализацией.Если объяснение слишком длинное, подойдет также руководство или ссылка на пост, в котором оно хорошо объяснено (для начинающего во всем этом).Спасибо!