gpt4 book ai didi

java - Spring Data JPA无限递归

转载 作者:太空宇宙 更新时间:2023-11-04 09:50:08 25 4
gpt4 key购买 nike

我到处都看到这个问题出现,虽然我遵循了他们的解决方案并解决了我的问题,但我真的不明白发生了什么。我的实体:

@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(生成器=ObjectIdGenerators.UUIDGenerator.class,property="@id") 位于我的实体上方,以及之后发生的情况。

    我读过一些解释,但我不太明白所有序列化和反序列化发生了什么。如果解释太长,也可以提供一个指南或链接到一个解释得很好的帖子(对于所有这一切的完全初学者)。谢谢!

最佳答案

看这里,您必须用以下方式注释您的列表:

@OneToMany(mappedBy = "bill")
@JsonIgore
List<ItemInOrder> itemi_vo_naracka = new ArrayList<>();

关于java - Spring Data JPA无限递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54874743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com