Это правильно? да
Должен ли клиент быть полем адреса? да
Для новичка, как говорит ваше сопоставление, класс Customer имеет определение:
private Address address;
Это определение является ссылкой на уровне класса на его относительный адрес,Затем он становится протоколом для режима гибернации, чтобы увидеть связь между Customer и Address.
Отображение в классе Address говорит: «У меня есть связь с классом Customer, моя ссылка там называется« адрес », поэтому при вызовеИз класса Customer сделан мне, он должен исходить из этой ссылки.
Обратите внимание, что это уровень класса.Затем Hibernate преобразует сопоставление в сопоставление таблицы с таблицей, используя внешний ключ адреса.
Пример, когда вы создаете нового клиента, например;
Customer customer = new Customer(..);
Address address = new Address(..);
customer.setAddress(address)
dao.save(address);
dao.save(customer);
Затем клиент будет иметь первичный ключАдрес сохранен и хранится как внешний ключ, отсюда и определение;
@JoinColumn (name="ADDRESS_ID")
private Address address;
Я думаю, что это базовое определение вашего вопроса. Подробнее о Hibernate One-to-One.