JACKSON REST API Добавить поле сущности с его идентификатором только в ManyToOne - PullRequest
0 голосов
/ 15 марта 2019

Я новичок в весеннем отдыхе API. У меня есть две сущности, которые имеют однонаправленные отношения многие к одному.

@Entity
public class Users{
    @Id @Column(name = "user_id") @JsonProperty("userId")
    private int id;

    @ManyToOne @JoinColumn("city_id")
    private City city;

    // other fields, getters, setters
}

@Entity
public class City{
    @Id @Column(name = "city_id") @JsonProperty("cityId")
    private int id;

    private String name;

    // other fields, getters, setters
}

Предположим, у меня уже есть несколько городов в таблице городов. Когда я хочу добавить нового пользователя с идентификатором города 2, используя метод http post, я должен был сделать что-то вроде этого:

{
  "userId": 1,
  "city": {
     "cityId": 2
  }
}

Как видите, мне сначала нужно было сгруппировать cityId внутри city сущности. Как я могу сделать это без группировки? как это:

{
  "userId": 1,
  "cityId": 2
}

1 Ответ

0 голосов
/ 15 марта 2019

Вы можете использовать @JsonUnwrapped ссылка

Аннотация, используемая для указания, что свойство должно быть сериализовано как "развернутый";то есть, если он будет сериализован как объект JSON, его свойства вместо этого будут включены как свойства содержащего его объекта.

пример кода:

@Entity
public class Users{
    @Id @Column(name = "user_id") @JsonProperty("userId")
    private int id;

    @JsonUnwrapped
    @ManyToOne @JoinColumn("city_id")
    private City city;

    // other fields, getters, setters
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...