gpt4 book ai didi

java - 双向关系的 JPA 循环引用

转载 作者:行者123 更新时间:2023-11-30 06:31:15 25 4
gpt4 key购买 nike

我有3个这样的表A----* B * ----- C(*是很多,所以从A到B和B - C是双向的,B上有很多,星号表示很多) .

A:
@OneToMany(mappedBy = "A")
private List<B> bList;

B:
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
@JsonIdentityReference(alwaysAsId=true)
@ManyToOne
private A;

@ManyToOne
private C;

C:
@JsonIgnore
@OneToMany(mappedBy = "C")
private List<B> bList;

我首先检索json对象,它检索正常,我已经消除了循环依赖关系,但后来我想将我在数据库中检索到的json插入到该对象不存在的数据库上。所以我尝试直接保存A,aRepository.save(A),但随后我得到一个错误,C对象不存在。在这种情况下我该如何保存,我是否应该将C中的json文件也放入对B的引用中?如果是,怎么办?

编辑:删除了 B 和 C 之间的双向关系,但仍然不起作用。

最佳答案

插入到数据库需要对 json 进行一些操作,因为您正在处理双向关系,请参阅双向关系,每一端都应该有对另一端的引用,这不能在 json 中完全完成,因为我们不处理引用,所以如果你有这样的 json

一个{

B [ { A:{} } ]

你无法判断两个 A 是相同的。

因此,您真正需要做的是从 json 中检索对象并将关系的每一方注入(inject)另一方,然后保留它们。

关于java - 双向关系的 JPA 循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068333/

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