Предположим, у меня есть следующий объект:Разделите объект JPA на два?
@Entity
@Table (name = "customers)
public class CustomerImpl implements Customer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false, unique = true)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@Column(name = "surname", nullable = false)
private String surname;
@Column(name = "country", nullable = false)
private String country;
@Column(name = "city", nullable = false)
private String city;
@Column(name = "street", nullable = false)
private String street;
@Column(name = "zipCode", nullable = false)
private String zipCode;
// constructor + getters
}
Я хочу, чтобы создать новый класс под названием Адрес, который будет держать страна, улица, город и почтовый индекс переменных. Затем выделенные переменные будут заменены объектом Address, чтобы сделать код более понятным и понятным.
В моем случае, должен ли быть внедрен класс класса, или я должен назначить его как новый объект и дать отношения @OneToOne между адресом и клиентом?
Спасибо
Это зависит от хо w вы будете хранить данные в своей базе данных. У вас есть таблица «АДРЕСА», или каждая таблица имеет столбцы «СТРАНА», «ГОРОД», «УЛИЦА» и «ZIPCODE»? –
У меня нет таблицы адресов, но я думал, что JPA генерирует таблицы, не так ли? – Bravo
Это зависит от вашего дизайна. Вы можете позволить JPA генерировать таблицы для вас (что, по моему мнению, является хорошим подходом только для целей интеграционного тестирования) или работать с существующей моделью базы данных (которая, по моему мнению, является более надежным подходом и не позволяет вам делать снимки самостоятельно ноги). –