JACKSON REST API仅在ManyToOne中添加具有其ID的实体字段

时间:2019-03-15 03:42:05

标签: java json spring rest jackson

我对Spring Rest 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
}

假设我在城市表中已经有一些城市。当我想使用http post方法添加城市ID为2的新用户时,我必须执行以下操作:

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

如您所见,我必须先将cityId实体内的city分组。没有分组怎么办?像这样:

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

1 个答案:

答案 0 :(得分:0)

您可以使用@JsonUnwrapped link

  

用于指示应序列化属性的注释   “解开”;也就是说,如果将其序列化为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
}