【发布时间】:2019-04-11 02:52:51
【问题描述】:
我有一个 REST API,它将接收以下格式的一些客户数据:
{
"customer_Id": 50,
"name": "name",
"company_name": "company_name",
"email": "email@provider.com",
"business_phone": "(00) 1111-2222",
"mobile_phone": "(00) 1111-2222",
"document": "123456789",
"state_registration_number": "ISENTO",
"state_registration_type": "NO_CONTRIBUTOR",
"city_registration_number": "ISENTO",
"classification": "AUTO",
"address": {
"street": "STREET NAME XXX",
"number": "NUMBER XX",
"complement": "COMPLEMENT",
"zip_code": "ZIP_CODE",
"neighborhood": "NEIGHBORHOOD",
"city": "CITY",
"state": "STATE"
}
}
我想将此数据保存在两张表中:一张表应包含“主要”客户数据,另一张表应包含客户的“地址”数据。
所以,我将Customer 实体定义如下:
@Data
@Entity(name = "X_CUSTOMERS")
public class Customer {
@Id
private int customer_Id;
@NotNull
private String name;
private String company_name;
private String email;
private String business_phone;
private String mobile_phone;
@NotNull
private String document;
private String state_registration_number;
private String state_registration_type;
private String city_registration_number;
@NotNull
private String classification;
@OneToOne(cascade = CascadeType.ALL)
private Address address;
}
而Address 实体为
@Data
@Entity(name = "X_ADDRESS")
public class Address {
@NotNull
private String street;
private String number;
private String complement;
private String zip_code;
private String neighborhood;
private String city;
private String state;
}
但是,我不知道如何在它们之间建立关系。我应该在Address 实体上创建customer_id 属性吗?我应该在Customer 的address 属性上定义一些额外的标签吗?请注意,我在 REST 客户端发布的 JSON 数据上没有客户,如果客户更新或删除,地址数据也应该更新/删除。
抱歉,这是一个如此琐碎的问题。这些天我正在学习 JPA/Hibernate 的基础知识,您的回答将引导我走向正确的方向,以避免“重新发明轮子”之类的事情。
非常感谢!
【问题讨论】:
标签: spring hibernate spring-boot jpa