Cómo intercambiar @JsonBackReference y @JsonManagedReference en función de qué entidad es referencia

Estoy tratando de encontrar una manera de intercambiar @JsonBackRefence y @JsonManagedReference en función de la entidad a la que hago referencia desde el repositorio asociado.

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

Sin embargo, cuando llamo a findById (buildingId), quiero intercambiar la @JsonBackReference. Por lo tanto, @JsonBackReference está en Site.java y @JsonManagedReference está en la entidad Building.java.

Nota:@JsonIdentityInfo casi lo maneja, pero me da demasiada información, es decir: cuando llamo a findById (buildingId) desde el BuildingRepository, me da todos los edificios para el sitio unidos al edificio encontrado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta