Домен-управляемый дизайн и Slick - возможно ли вообще моделировать агрегированные корни, не кодируя все сущности, подключающие меня самостоятельно? - PullRequest
0 голосов
/ 04 декабря 2018

У меня возникают некоторые проблемы с пониманием того, как смоделировать агрегированный корень с помощью Slick - или, если вообще возможно, при разумных усилиях!

Допустим, у меня есть Order, который содержитнабор OrderItem с.Для них есть некоторый инвариант, поэтому я моделирую их как агрегат на уровне домена, где Order является корнем агрегата.Это, конечно, будет смоделировано как две таблицы в реляционной базе данных.

Проблема в том, что из того, что я понял, Slick не предоставляет какого-либо простого способа иметь ссылки между сущностями.

Само создание объектов в хранилище не будет такой большой проблемой

class OrderRepository {
  def get(id: Long) = {
    // load order data
    // now load all order items data
    Order(.., .., order items, ...)
  }

, но я бы не хотел вручную писать логику вставки / сохранения / обновления OrderItem (проверка наличия новых элементов или их удаления или обновления, какие поля были обновлены и т. д.)

Есть ли простой способ сделать это или мне придется прибегнуть к отсутствию какого-либо агрегата?корни и моделировать все как сущности вместо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...