Spring 启动 JPA - json 带有嵌套对象和 id
Spring boot JPA - json with nested object and id
我正在尝试用一些基本的 ORM 关系和用于发送 json 的 REST 控制器来做一个项目。
我的一个 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--
}
发出 get 请求时,响应如下所示:
{
id: 1,
name: "Product 1",
manufacturer: {
id: 1,
name: "Manufacturer 1"
}
}
有没有办法让请求看起来像这样?(Return 外键 ID 和嵌套对象)
{
id: 1,
name: "Product 1",
manufacturer_id: 1
manufacturer: {
id: 1,
name: "Manufacturer 1"
}
}
您只需在 ProductModel
中添加一个额外的 getter 并使它们成为 @Transient
@JsonProperty("manufacturer_id")
@Transient
public Long getManufacturerId() {
return manufacturer == null ? null : manufacturer.getId();
}
我正在尝试用一些基本的 ORM 关系和用于发送 json 的 REST 控制器来做一个项目。
我的一个 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--
}
发出 get 请求时,响应如下所示:
{
id: 1,
name: "Product 1",
manufacturer: {
id: 1,
name: "Manufacturer 1"
}
}
有没有办法让请求看起来像这样?(Return 外键 ID 和嵌套对象)
{
id: 1,
name: "Product 1",
manufacturer_id: 1
manufacturer: {
id: 1,
name: "Manufacturer 1"
}
}
您只需在 ProductModel
中添加一个额外的 getter 并使它们成为 @Transient
@JsonProperty("manufacturer_id")
@Transient
public Long getManufacturerId() {
return manufacturer == null ? null : manufacturer.getId();
}