【发布时间】:2018-05-27 08:52:46
【问题描述】:
我有一个 SpringBoot 应用程序,并且正在使用 CrudRepository 将对象持久保存到数据库。我有一个产品实体类,它与供应商实体具有多对一的关系。我传递的 JSON 包含产品和嵌入式供应商的详细信息,但我最终只想传递产品详细信息并包含 vendorID。是否有一些注释可以为我解决这个问题?
这是我的代码:
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne
@JoinColumn(name="VendorID")
private Vendor vendor;
@Column(name="partnumber")
@JsonProperty("PartNumber")
private String vendorPartNumber;
@JsonProperty("Name")
private String name;
@Entity
public class Vendor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@JsonProperty("Code")
private String code;
@JsonProperty("Name")
private String name;
....
@OneToMany(mappedBy = "vendor", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonIgnore
private List<Product> products;
我传递的 JSON(有效)如下所示:
{
"Vendor": {
"Id":1,
"Code": "BB-1001",
"Name": "Best Buy",
"Address": "100 Best Buy Street",
"City": "Louisville",
"State": "KY",
"Zip": "40207",
"Phone": "502-111-9099",
"Email": "geeksquad@bestbuy.com",
"IsPreApproved": "false"
},
"PartNumber":"TEST01",
"Name":"Test Product 01",
"Price":99.99
}
我最终想删除对供应商的 JSON 对象引用并替换为 VendorId。
【问题讨论】:
-
定义一个 DTO 而不是与 Entity 战斗,只添加必要的字段。
-
感谢您的快速回复!我现在正在调查和测试。
标签: json spring spring-data-jpa