Saya mencoba mencari cara untuk menukar @JsonBackRefence dan @JsonManagedReference berdasarkan entitas yang saya referensikan dari repositori terkait.
Situs.java
@Entity
@Table(name = "Site")
public class Site {
@Id
private String id;
@OneToMany(mappedBy="site")
@JsonManagedReference
private List<Building> buildings;
}
Bangunan.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
Namun saat memanggil findById(buildingId), saya ingin @JsonBackReference ditukar. Oleh karena itu, @JsonBackReference ada di Site.java dan @JsonManagedReference ada di entitas Building.java.
Catatan: @JsonIdentityInfo hampir menanganinya, tetapi ini memberi saya terlalu banyak informasi, yaitu: ketika saya memanggil findById(buildingId) dari BuildingRepository, ia memberi saya semua bangunan untuk situs yang digabungkan dengan bangunan yang ditemukan.