У меня есть 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;
}
Но я не мог понять, как создать отношения между ними. Должен ли я создать атрибут customer_id
для объекта Address
? Должен ли я определить дополнительные теги для атрибута Customer
address
? Обратите внимание, что у меня нет клиента для данных JSON, которые публикуются клиентом REST, и, если клиент обновляется или удаляется, данные адреса также должны обновляться / удаляться.
Извините, если это такой тривиальный вопрос. В эти дни я изучаю основы JPA / Hibernate, и ваш ответ направит меня в правильном направлении, чтобы избежать таких вещей, как «изобретать велосипед».
Большое спасибо!