Я нахожу упоминания во многих ответах на вопросы Spring Design, связанные с дизайном Spring, с «Совокупным корнем» и «Сущность» вместе с «Объектами ценности».Как сделать POST на зависимом объекте без резервного хранилища
И я думаю, что Репозиторий приравнивается к Агрегатному корню.
СЛУЧАЙ 1
Мой вопрос вокруг этого, говорят, что есть 2 предприятия - пользователя и UserSettings, представленные в базе данных в виде таблиц и 2 UserSettings, имеющих внешний ключ user_id, указывающий на пользователя.
В этом случае я хотел бы сделать GET/POST как на пользователе, так и на UserSettings. Из некоторых сообщений я узнал, что репозитории должны быть на уровне совокупности, что в данном случае означало бы размещение репозитория только для Пользователя, поскольку UserSettings полностью зависит от пользователя.
Прямо сейчас у меня есть 2 хранилища с двунаправленными отношениями, по одному для каждого i.e UserRepository и UserSettingsRepostory, которые отображаются как службы REST.
В результате, я POST на UserSettings и Пользователем
/app/userSettings
/app/users
, получить я использую для UserSettings & пользователя -
/app/users/{id}/userSettings
/app/users/{id}
Если я не подвергать UserSettingsRepository, что будет быть эквивалентным POST на /app/userSettings
, где я в настоящее время делаю, как показано ниже:
СЛУЧАЙ 2
Аналогично, если имеются следующие лица/Таблицы - Пользователь, UserPost и UserComment - здесь UserComment имеет 2 внешних ключей как UserPost, а также пользователь.
Я предполагаю, что здесь у нас есть 2 совокупных корня и поэтому должны иметь 2 хранилища, такие как UserRepository и UserPostRepository.
Еще один способ задуматься о том, что, поскольку все зависят от пользователя, и поэтому у нас может быть только 1 репозиторий только для UserRepository.
Здесь тоже, вопреки моему текущему состоянию, когда у меня даже есть UserCommentRepository, я не уверен, как сделать POST на UserComment после его удаления.
Я нашел некоторые ссылки здесь - https://github.com/olivergierke/spring-restbucks/blob/master/src%2Ftest%2Fjava%2Forg%2Fspringsource%2Frestbucks%2Forder%2FOrderRepositoryIntegrationTest.java – fortm