Spring引导JPA - 带有嵌套对象和标识

时间:2017-05-19 20:24:29

标签: json hibernate spring-boot hibernate-jpa

我正在尝试使用一些基本的ORM关系和REST控制器来发送jsons。

我的一个POJO看起来像这样:

@Entity
@Table(name = "product_models")
public class ProductModel extends BaseEntityWithName {
  @ManyToOne(fetch = FetchType.EAGER)
  @JoinColumn(name = "manufacturer_id")
  @JsonManagedReference
  private ProductManufacturer manufacturer;

  --constr + setters + getters--

}

在提出请求时,响应看起来像这样:

{ 
  id: 1, 
  name: "Product 1", 
  manufacturer: {
                   id: 1, 
                   name: "Manufacturer 1"
                 }
}

有没有办法让请求看起来像这样?(返回外键id和嵌套对象)

{ 
  id: 1, 
  name: "Product 1", 
  manufacturer_id: 1
  manufacturer: {
                   id: 1, 
                   name: "Manufacturer 1"
                 }
}

1 个答案:

答案 0 :(得分:3)

您只需向ProductModel添加一个额外的getter,然后将它们@Transient

@JsonProperty("manufacturer_id")
@Transient
public Long getManufacturerId() {
  return manufacturer == null ? null : manufacturer.getId();
}