Карта пользователя, адрес, страна с DDD - PullRequest
0 голосов
/ 07 января 2012

Я пытаюсь создать сайт электронной коммерции, используя spring, hibernate и впервые после DDD.

На данный момент ситуация такова.Я рассматриваю объект USER как совокупный корень, который имеет список адресов (предыдущие и текущие), и для каждого адреса есть связанная страна (изокод, имя).

Я предположил, что адреси Country - это объекты-значения .. строго связанные с пользователем.

В классе @Entity User есть: @ElementCollection @CollectionTable (name = "address", joinColumns = @JoinColumn (name = "address_id")) @OrderColumn (name = "user_id") private List address;

В классе @Embeddable Address я хотел бы создать отдельную таблицу для Country, которую я могу заполнить во время инициализации, а в Address есть только сторонний адресkey.

Я пробовал @Embeddable Country и в адресе @Embedded private Country country

, а также @SecondaryTable .. но это можно использовать только в классе @Entity .. Так что проблема в том, чтополя Страна сохраняются внутри таблицы адресов.

Должен ли я создать @Entity для страны?Или есть другой способ сопоставить эти классы?

Спасибо

1 Ответ

0 голосов
/ 07 января 2012

Я действительно не вижу смысла делать Country внедренным объектом.Вы будете повторять одни и те же коды и имена снова и снова для всех своих пользователей, вместо того, чтобы просто указывать им на одни и те же страны.Просто создайте таблицу со всеми странами, отображаемыми объектом, и сделайте так, чтобы все адреса имели связь ManyToOne со страной.

Кстати, если вы хотите создать пользовательский интерфейс, в котором необходимо ввестиадрес, я думаю, вам понадобится поле выбора с указанием всех стран для выбора: вы не будете вводить код и название страны каждый раз вручную.Таким образом, вам понадобится объект Country и метод findAll, чтобы получить их все и заполнить поле выбора.

...