Вы можете использовать аннотацию @JsonSetter
, например:
public class User{
public String contact;
public String name;
@JsonSetter("name")
public void setName(String name) {
this.name = name;
}
@JsonSetter("userName")
public void setName(String name) {
this.name = name;
}
}
Вместо прямого сопоставления с классом сущности, вы должны иметь объект или модель DTO между ними для сопоставления ответа json.Затем вы можете преобразовать это в любую сущность, которую вы можете выбрать. Если вы выбираете данные из разных источников, это означает, что вы вызываете разные конечные точки, почему бы вам не создать разные DTO для этого. Таким образом, даже если одиниз конечных точек вносит изменение, оно не повлияет на остальные вызовы конечной точки.
И наоборот, вы можете получить разные объекты DTO, возвращаемые из двух конечных точек вместо того, чтобы возвращать один и тот же класс Entity,таким образом, вы можете контролировать, какие атрибуты должны присутствовать в ответе.
Чтобы уменьшить код котельной пластины, вы можете использовать библиотеку, такую как MAP STRUCT , чтобы включить преобразование между объектом и DTOобъекты легко
Читайте здесь о преимуществах использования DTO.