gpt4 book ai didi

java - 如何根据引用的实体交换@JsonBackReference和@JsonManagedReference

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

我正在尝试找到一种根据我从关联存储库引用的实体来交换 @JsonBackRefence 和 @JsonManagedReference 的方法。

Site.java

@Entity
@Table(name = "Site")
public class Site {

@Id
private String id;

@OneToMany(mappedBy="site")
@JsonManagedReference
private List<Building> buildings;
}

Building.java

@Entity
@Table(name = "building")
public class Building{

@Id
private String id;

@ManyToOne
@JoinColumn(name = "SITE_ID")
@JsonBackReference
private Site site;
}

SiteRepository.java

public List<Site> findAll(); //Works as intended

BuildingRepository.java

public Building findById(buildingId); //Works if references are swapped

但是,当调用 findById(buildingId) 时,我想交换 @JsonBackReference。因此,@JsonBackReference 位于 Site.java 中,@JsonManagedReference 位于 Building.java 实体中。

注意:@JsonIdentityInfo 几乎可以处理它,但它给了我太多信息,即:当我从 BuildingRepository 调用 findById(buildingId) 时,它为我提供了连接到建筑物的站点的所有建筑物找到了。

最佳答案

如果我理解正确,@JsonIgnoreProperties 注释应该对您有帮助:

@JsonIgnoreProperties("site")
@OneToMany(mappedBy="site")
private List<Building> buildings;

@JsonIgnoreProperties("buildings")
@ManyToOne
private Site site;

关于java - 如何根据引用的实体交换@JsonBackReference和@JsonManagedReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721145/

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